Files
2026-07-13 13:16:30 +08:00

128 lines
3.9 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../../scripts/lib.sh"
echo "=== Removing OpenClaw Platform ==="
echo ""
step() {
echo ""
echo -e "${BOLD}[$1/7] $2${NC}"
echo "----------------------------------------"
}
step 1 "OpenClaw npm package"
if command -v npm &>/dev/null; then
if npm list -g openclaw &>/dev/null; then
npm uninstall -g openclaw
echo -e "${GREEN}[OK]${NC} openclaw package removed"
else
echo -e "${YELLOW}[SKIP]${NC} openclaw not installed"
fi
else
echo -e "${YELLOW}[SKIP]${NC} npm not found"
fi
step 2 "clawdhub npm package"
if command -v npm &>/dev/null; then
if npm list -g clawdhub &>/dev/null; then
npm uninstall -g clawdhub
echo -e "${GREEN}[OK]${NC} clawdhub package removed"
else
echo -e "${YELLOW}[SKIP]${NC} clawdhub not installed"
fi
else
echo -e "${YELLOW}[SKIP]${NC} npm not found"
fi
step 3 "OpenCode"
OPENCODE_INSTALLED=false
if [ "$OPENCODE_INSTALLED" = true ]; then
if ask_yn "Remove OpenCode (AI coding assistant)?"; then
if pgrep -f "ld.so.opencode" &>/dev/null; then
pkill -f "ld.so.opencode" || true
echo -e "${GREEN}[OK]${NC} Stopped running OpenCode"
fi
[ -f "$HOME/.openclaw-android/bin/ld.so.opencode" ] && rm -f "$HOME/.openclaw-android/bin/ld.so.opencode" && echo -e "${GREEN}[OK]${NC} Removed ld.so.opencode"
# Clean up legacy tmp location
[ -f "$PREFIX/tmp/ld.so.opencode" ] && rm -f "$PREFIX/tmp/ld.so.opencode"
[ -f "$PREFIX/bin/opencode" ] && rm -f "$PREFIX/bin/opencode" && echo -e "${GREEN}[OK]${NC} Removed opencode wrapper"
[ -d "$HOME/.config/opencode" ] && rm -rf "$HOME/.config/opencode" && echo -e "${GREEN}[OK]${NC} Removed ~/.config/opencode"
else
echo -e "${YELLOW}[KEEP]${NC} Keeping OpenCode"
fi
fi
step 4 "Bun cleanup"
if [ ! -f "$PREFIX/bin/opencode" ] && [ -d "$HOME/.bun" ]; then
rm -rf "$HOME/.bun"
echo -e "${GREEN}[OK]${NC} Removed ~/.bun"
else
echo -e "${YELLOW}[SKIP]${NC} Bun is still required or not installed"
fi
step 5 "OpenClaw temporary files"
if [ -d "${PREFIX:-}/tmp/openclaw" ]; then
rm -rf "${PREFIX:-}/tmp/openclaw"
echo -e "${GREEN}[OK]${NC} Removed ${PREFIX:-}/tmp/openclaw"
else
echo -e "${YELLOW}[SKIP]${NC} ${PREFIX:-}/tmp/openclaw not found"
fi
step 6 "OpenClaw data"
if [ -d "$HOME/.openclaw" ]; then
reply=""
read -rp "Remove OpenClaw data directory (~/.openclaw)? [y/N] " reply < /dev/tty
if [[ "$reply" =~ ^[Yy]$ ]]; then
rm -rf "$HOME/.openclaw"
echo -e "${GREEN}[OK]${NC} Removed ~/.openclaw"
else
echo -e "${YELLOW}[KEEP]${NC} Keeping ~/.openclaw"
fi
else
echo -e "${YELLOW}[SKIP]${NC} ~/.openclaw not found"
fi
step 7 "AI CLI tools"
AI_TOOLS_FOUND=()
AI_TOOL_LABELS=()
if command -v claude &>/dev/null; then
AI_TOOLS_FOUND+=("@anthropic-ai/claude-code")
AI_TOOL_LABELS+=("Claude Code")
fi
if command -v gemini &>/dev/null; then
AI_TOOLS_FOUND+=("@google/gemini-cli")
AI_TOOL_LABELS+=("Gemini CLI")
fi
if command -v codex &>/dev/null; then
AI_TOOLS_FOUND+=("@mmmbuto/codex-cli-termux")
AI_TOOL_LABELS+=("Codex CLI (Termux)")
fi
if [ ${#AI_TOOLS_FOUND[@]} -eq 0 ]; then
echo -e "${YELLOW}[SKIP]${NC} No AI CLI tools detected"
else
echo "Installed AI CLI tools detected:"
for label in "${AI_TOOL_LABELS[@]}"; do
echo " - $label"
done
reply=""
read -rp "Remove these AI CLI tools? [y/N] " reply < /dev/tty
if [[ "$reply" =~ ^[Yy]$ ]]; then
for pkg in "${AI_TOOLS_FOUND[@]}"; do
if npm uninstall -g "$pkg"; then
echo -e "${GREEN}[OK]${NC} Removed $pkg"
else
echo -e "${YELLOW}[WARN]${NC} Failed to remove $pkg"
fi
done
else
echo -e "${YELLOW}[KEEP]${NC} Keeping AI CLI tools"
fi
fi