File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -152,7 +152,25 @@ INSTALL_DIR="$HOME/.needle"
152152# Remove old installation if exists
153153if [ -d " $INSTALL_DIR " ]; then
154154 print_warning " Directory $INSTALL_DIR already exists. Removing old installation..."
155- rm -rf " $INSTALL_DIR "
155+
156+ # Stop any running services first
157+ if [ -f " $INSTALL_DIR /docker/docker-compose.infrastructure.yaml" ]; then
158+ print_status " Stopping existing Docker services..."
159+ docker compose -f " $INSTALL_DIR /docker/docker-compose.infrastructure.yaml" down -v 2> /dev/null || true
160+ fi
161+
162+ # Remove Docker volumes (may require elevated permissions)
163+ if [ -d " $INSTALL_DIR /volumes" ]; then
164+ print_status " Cleaning up Docker volumes..."
165+ # Use Docker to remove volume files (runs as root)
166+ docker run --rm -v " $INSTALL_DIR /volumes:/volumes" alpine sh -c " rm -rf /volumes/*" 2> /dev/null || true
167+ fi
168+
169+ # Now remove the directory
170+ rm -rf " $INSTALL_DIR " 2> /dev/null || {
171+ print_error " Failed to remove $INSTALL_DIR . You may need to run: sudo rm -rf $INSTALL_DIR "
172+ exit 1
173+ }
156174fi
157175
158176# Clone repository directly to ~/.needle
Original file line number Diff line number Diff line change 131131
132132# ## Step 4: Remove entire Needle directory
133133print_status " Removing Needle installation directory..."
134- rm -rf " $NEEDLE_DIR "
135- print_success " Needle directory removed"
134+
135+ # Clean up Docker volume files (may have root ownership)
136+ if [ -d " $NEEDLE_DIR /volumes" ]; then
137+ print_status " Cleaning up Docker volume files..."
138+ docker run --rm -v " $NEEDLE_DIR /volumes:/volumes" alpine sh -c " rm -rf /volumes/*" 2> /dev/null || true
139+ fi
140+
141+ rm -rf " $NEEDLE_DIR " 2> /dev/null || {
142+ print_error " Failed to remove some files in $NEEDLE_DIR "
143+ print_status " You may need to run: sudo rm -rf $NEEDLE_DIR "
144+ }
145+
146+ if [ ! -d " $NEEDLE_DIR " ]; then
147+ print_success " Needle directory removed"
148+ else
149+ print_warning " Some files could not be removed. Run: sudo rm -rf $NEEDLE_DIR "
150+ fi
136151
137152# ## Step 5: Final message
138153print_success " 🎉 Uninstallation complete!"
You can’t perform that action at this time.
0 commit comments