forked from gluk-w/claworc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuninstall.sh
More file actions
executable file
·107 lines (87 loc) · 2.89 KB
/
Copy pathuninstall.sh
File metadata and controls
executable file
·107 lines (87 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/env bash
set -euo pipefail
CONTAINER_NAME="claworc"
DASHBOARD_IMAGE="claworc/claworc"
AGENT_IMAGE="glukw/openclaw-vnc-chromium"
confirm() {
printf "%s [Y/n]: " "$1"
read -r answer
case "${answer:-y}" in
[Yy]*) return 0 ;;
*) return 1 ;;
esac
}
echo ""
echo "=== Claworc Uninstaller ==="
echo ""
# --- Detect deployment type --------------------------------------------------
FOUND_DOCKER=0
FOUND_K8S=0
if docker container inspect "$CONTAINER_NAME" &>/dev/null 2>&1; then
FOUND_DOCKER=1
fi
if command -v helm &>/dev/null && helm list -A 2>/dev/null | grep -q claworc; then
FOUND_K8S=1
fi
if [[ "$FOUND_DOCKER" -eq 0 && "$FOUND_K8S" -eq 0 ]]; then
echo "No Claworc installation detected."
echo ""
echo "If you installed manually, use:"
echo " Docker: docker rm -f $CONTAINER_NAME"
echo " Kubernetes: helm uninstall claworc -n claworc"
exit 0
fi
# --- Docker uninstall --------------------------------------------------------
if [[ "$FOUND_DOCKER" -eq 1 ]]; then
echo "Docker installation detected."
echo ""
if confirm "Remove dashboard container ($CONTAINER_NAME)?"; then
docker rm -f "$CONTAINER_NAME" >/dev/null
echo " Removed $CONTAINER_NAME"
fi
# Find and remove agent containers
AGENTS=$(docker ps -a --filter "name=bot-" --format '{{.Names}}' 2>/dev/null || true)
if [[ -n "$AGENTS" ]]; then
COUNT=$(echo "$AGENTS" | wc -l | tr -d ' ')
echo ""
if confirm "Remove $COUNT agent container(s)?"; then
echo "$AGENTS" | xargs docker rm -f >/dev/null
echo " Removed $COUNT agent container(s)"
fi
fi
# Remove data directory
DATA_DIR="$HOME/.claworc/data"
if [[ -d "$DATA_DIR" ]]; then
echo ""
if confirm "Remove data directory ($DATA_DIR)?"; then
rm -rf "$DATA_DIR"
echo " Removed $DATA_DIR"
fi
fi
# Remove images
echo ""
if confirm "Remove Docker images ($DASHBOARD_IMAGE, $AGENT_IMAGE)?"; then
docker rmi "$DASHBOARD_IMAGE:latest" 2>/dev/null || true
docker rmi "$AGENT_IMAGE:latest" 2>/dev/null || true
echo " Removed images"
fi
fi
# --- Kubernetes uninstall ----------------------------------------------------
if [[ "$FOUND_K8S" -eq 1 ]]; then
echo "Kubernetes installation detected."
echo ""
# Detect namespace from helm
NAMESPACE=$(helm list -A 2>/dev/null | grep claworc | awk '{print $2}')
NAMESPACE="${NAMESPACE:-claworc}"
if confirm "Uninstall Helm release 'claworc' from namespace '$NAMESPACE'?"; then
helm uninstall claworc -n "$NAMESPACE"
echo " Helm release removed"
fi
echo ""
if confirm "Delete namespace '$NAMESPACE'?"; then
kubectl delete namespace "$NAMESPACE" --ignore-not-found
echo " Namespace removed"
fi
fi
echo ""
echo "Uninstall complete."