Fix uninstall.sh: retry with sudo when rm -rf fails on Docker-owned files
Nightly Build / build (push) Successful in 6m26s

homes/ directory can contain files owned by other UIDs (root, etc.)
because Docker containers run as different users. Normal rm -rf fails
with Permission denied. Now falls back to sudo rm -rf automatically.
This commit is contained in:
2026-07-20 18:29:53 +01:00
parent fefcf95362
commit cff860499e
2 changed files with 16 additions and 1 deletions
+6
View File
@@ -48,6 +48,12 @@ curl -fsSL https://builds.skaldagent.net/install.sh | bash
Or, after installation: `~/.local/share/skald-circle/uninstall.sh`
## Bug fix: uninstall.sh fails on Docker-owned files in homes/ ✅
**Problem**: `uninstall.sh` runs `rm -rf "$INSTALL_DIR"` as the normal user, but `homes/` contains files created by Docker containers running under different UIDs (often root). The removal fails with "Permission denied" on those files, leaving a broken install behind.
**Fix**: if `rm -rf` fails (non-zero exit), the script retries with `sudo rm -rf`. If even sudo fails, it prints an error message and exits non-zero so the user knows manual cleanup is needed.
### From source
```sh
+10 -1
View File
@@ -97,7 +97,16 @@ esac
# ── Remove installation directory ─────────────────────────────────────────────
if [ -d "$INSTALL_DIR" ]; then
info "🗑️ Removing installation directory …"
rm -rf "$INSTALL_DIR"
rm -rf "$INSTALL_DIR" 2>/dev/null || {
warn "Some files are owned by other users (e.g. from Docker sandboxes)."
info "🔐 Retrying with sudo …"
sudo rm -rf "$INSTALL_DIR"
}
if [ -d "$INSTALL_DIR" ]; then
err "Failed to remove ${INSTALL_DIR} even with sudo."
err "You may need to manually remove it."
exit 1
fi
info "✔ Removed ${INSTALL_DIR}"
else
warn "Installation directory not found: ${INSTALL_DIR}"