#!/usr/bin/env bash # Reset only one standalone desktop development instance. set -euo pipefail instance_id="${1:-}" keyring_service="${2:-}" if [[ "$instance_id" != "xyz.block.buzz.app.dev" && "$instance_id" != xyz.block.buzz.app.dev.* ]]; then echo "reset-desktop-standalone-state: refusing non-dev bundle identifier: $instance_id" >&2 exit 1 fi if [[ "$keyring_service" != "buzz-desktop-dev" && "$keyring_service" != buzz-desktop-dev.* ]]; then echo "reset-desktop-standalone-state: refusing non-dev keyring service: $keyring_service" >&2 exit 1 fi remove_path() { local path="$1" if [[ -e "$path" || -L "$path" ]]; then echo "Removing $path" rm -rf -- "$path" fi } case "${BUZZ_TEST_PLATFORM:-$(uname -s)}" in Darwin) remove_path "$HOME/Library/Application Support/$instance_id" remove_path "$HOME/Library/Caches/$instance_id" remove_path "$HOME/Library/WebKit/$instance_id" remove_path "$HOME/Library/HTTPStorages/$instance_id" remove_path "$HOME/Library/Saved Application State/$instance_id.savedState" remove_path "$HOME/Library/Preferences/$instance_id.plist" if command -v security >/dev/null 2>&1; then while security delete-generic-password -s "$keyring_service" >/dev/null 2>&1; do :; done fi ;; Linux) remove_path "${XDG_DATA_HOME:-$HOME/.local/share}/$instance_id" remove_path "${XDG_CONFIG_HOME:-$HOME/.config}/$instance_id" remove_path "${XDG_CACHE_HOME:-$HOME/.cache}/$instance_id" ;; *) echo "reset-desktop-standalone-state: unsupported platform" >&2 exit 1 ;; esac echo "Standalone state removed for $instance_id; relay and database data were not touched"