2025-09-14 11:29:21 +02:00
|
|
|
#!/usr/bin/env bash
|
2025-09-19 15:30:41 +02:00
|
|
|
# BackTunnel uninstaller (with optional PURGE=1 to remove shared defaults)
|
|
|
|
|
set -euo pipefail
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
PREFIX=${PREFIX:-/usr}
|
|
|
|
|
DESTDIR=${DESTDIR:-}
|
|
|
|
|
PURGE=${PURGE:-0} # set PURGE=1 to remove /usr/share/backtunnel and /etc/backtunnel
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
BINDIR="$DESTDIR$PREFIX/bin"
|
|
|
|
|
MANDIR="$DESTDIR$PREFIX/share/man/man1"
|
|
|
|
|
KIO_SM="$DESTDIR$PREFIX/share/kio/servicemenus"
|
|
|
|
|
KSVC5="$DESTDIR$PREFIX/share/kservices5/ServiceMenus"
|
|
|
|
|
APPDIR="$DESTDIR$PREFIX/share/applications"
|
|
|
|
|
BCOMP="$DESTDIR$PREFIX/share/bash-completion/completions"
|
|
|
|
|
SHARE_DIR="$DESTDIR$PREFIX/share/backtunnel"
|
|
|
|
|
ETC_DIR="$DESTDIR/etc/backtunnel"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
say() { printf '[BackTunnel] %s\n' "$*"; }
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
say "Uninstalling from PREFIX=${PREFIX} DESTDIR=${DESTDIR} (PURGE=${PURGE})"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Remove binaries ---
|
|
|
|
|
rm -f "$BINDIR/backtunnel-share" \
|
|
|
|
|
"$BINDIR/backtunnel-access" \
|
|
|
|
|
"$BINDIR/backtunnel-share-gui" \
|
|
|
|
|
"$BINDIR/backtunnel-access-gui" \
|
|
|
|
|
"$BINDIR/backtunnel-open-term" \
|
|
|
|
|
"$BINDIR/backtunnel-share-tui" \
|
|
|
|
|
"$BINDIR/backtunnel-access-tui"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Man page ---
|
|
|
|
|
rm -f "$MANDIR/backtunnel.1"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Bash completions ---
|
|
|
|
|
rm -f "$BCOMP/backtunnel-share" \
|
|
|
|
|
"$BCOMP/backtunnel-access"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Dolphin service menus (Plasma 6 + legacy) ---
|
|
|
|
|
rm -f "$KIO_SM/backtunnel_share.desktop" \
|
|
|
|
|
"$KIO_SM/backtunnel_access.desktop" \
|
|
|
|
|
"$KSVC5/backtunnel_share.desktop" \
|
|
|
|
|
"$KSVC5/backtunnel_access.desktop"
|
|
|
|
|
|
|
|
|
|
# --- Optional desktop launcher ---
|
|
|
|
|
rm -f "$APPDIR/backtunnel.desktop" || true
|
|
|
|
|
|
|
|
|
|
# --- Shared defaults (only if PURGE=1) ---
|
|
|
|
|
if [[ "$PURGE" = "1" ]]; then
|
|
|
|
|
say "Purging shared defaults under $SHARE_DIR and $ETC_DIR"
|
|
|
|
|
rm -f "$SHARE_DIR/profiles.ini" 2>/dev/null || true
|
|
|
|
|
rm -f "$ETC_DIR/profiles.ini" 2>/dev/null || true
|
|
|
|
|
# Remove directories if empty (and prune empty parents)
|
|
|
|
|
rmdir -p --ignore-fail-on-non-empty "$SHARE_DIR" 2>/dev/null || true
|
|
|
|
|
rmdir -p --ignore-fail-on-non-empty "$ETC_DIR" 2>/dev/null || true
|
|
|
|
|
else
|
|
|
|
|
# Optionally clean up empty share dir if package manager removed files already
|
|
|
|
|
rmdir -p --ignore-fail-on-non-empty "$SHARE_DIR" 2>/dev/null || true
|
|
|
|
|
say "Keeping shared defaults: $SHARE_DIR/ and $ETC_DIR/ (set PURGE=1 to remove)"
|
|
|
|
|
fi
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Refresh desktop/KDE cache (best-effort) ---
|
|
|
|
|
command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database -q || true
|
2025-09-14 14:11:36 +02:00
|
|
|
if command -v kbuildsycoca6 >/dev/null 2>&1; then
|
|
|
|
|
kbuildsycoca6 --noincremental >/dev/null 2>&1 || true
|
|
|
|
|
elif command -v kbuildsycoca5 >/dev/null 2>&1; then
|
|
|
|
|
kbuildsycoca5 --noincremental >/dev/null 2>&1 || true
|
|
|
|
|
fi
|
|
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
say "Uninstall complete."
|