46 lines
2.1 KiB
Bash
Executable File
46 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
||
# Удаление панели «Claude». С --purge удаляет ещё настройки и логи.
|
||
set -euo pipefail
|
||
|
||
ok() { printf ' \033[32m✓\033[0m %s\n' "$*"; }
|
||
die() { printf '\033[31mОшибка:\033[0m %s\n' "$*" >&2; exit 1; }
|
||
|
||
[ -z "${SSH_CONNECTION:-}${SSH_TTY:-}" ] \
|
||
|| die "запустите за самим Mac, не по SSH — из SSH-сессии launchd и iTerm2 не настроить"
|
||
|
||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||
AUTOLAUNCH="$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch"
|
||
SETTINGS="$HOME/.claude/settings.json"
|
||
BACKUP_DIR="$HOME/.claude-panel-backup/$(date +%Y%m%d-%H%M%S)-$$-uninstall"
|
||
PORT=8766
|
||
LABEL=com.andrey.claude-agents
|
||
PLIST="$HOME/Library/LaunchAgents/$LABEL.plist"
|
||
|
||
# служба — первой, иначе launchd поднимет сервер снова
|
||
launchctl bootout "gui/$(id -u)/$LABEL" >/dev/null 2>&1 && ok "служба остановлена" || true
|
||
rm -f "$PLIST"
|
||
rm -rf "$HOME/.local/share/claude-agents"
|
||
ok "служба удалена"
|
||
|
||
if command -v lsof >/dev/null; then
|
||
pids=$(lsof -ti "tcp:$PORT" -sTCP:LISTEN 2>/dev/null || true)
|
||
[ -n "$pids" ] && kill $pids 2>/dev/null && ok "панель остановлена"
|
||
fi
|
||
|
||
rm -f "$AUTOLAUNCH/claude_agents.py" && ok "скрипт убран из AutoLaunch"
|
||
|
||
if [ -f "$SETTINGS" ]; then
|
||
mkdir -p "$BACKUP_DIR" && cp -p "$SETTINGS" "$BACKUP_DIR/"
|
||
removed=$(python3 "$HERE/files/settings_hooks.py" remove "$SETTINGS")
|
||
ok "settings.json: убраны хуки ${removed} (копия — в $BACKUP_DIR)"
|
||
fi
|
||
rm -f "$HOME/.claude/hooks/agents_panel_hook.sh" && ok "хук удалён"
|
||
|
||
if [ "${1:-}" = "--purge" ]; then
|
||
rm -rf "$HOME/.config/claude-agents" "$HOME/.cache/claude-agents" "$HOME/Library/Logs/claude-agents"
|
||
ok "настройки и логи удалены"
|
||
else
|
||
echo " Настройки (~/.config/claude-agents) и логи (~/.cache/claude-agents, ~/Library/Logs/claude-agents) оставлены; --purge удалит и их."
|
||
fi
|
||
echo "Панель «Claude» исчезнет из меню Toolbelt после перезапуска iTerm2."
|