2025-09-14 11:29:21 +02:00
|
|
|
#!/usr/bin/env bash
|
2025-09-19 15:30:41 +02:00
|
|
|
# BackTunnel installer (terminal/TUI service menus)
|
2025-09-14 11:29:21 +02:00
|
|
|
set -euo pipefail
|
|
|
|
|
|
2025-09-14 20:41:51 +02:00
|
|
|
PREFIX=${PREFIX:-/usr}
|
2025-09-19 15:30:41 +02:00
|
|
|
DESTDIR=${DESTDIR:-}
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
|
|
say() { printf '[BackTunnel] %s\n' "$*"; }
|
|
|
|
|
|
|
|
|
|
say "Installing to PREFIX=${PREFIX} DESTDIR=${DESTDIR}"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Binaries (CLI) ---
|
|
|
|
|
install -Dm755 "scripts/backtunnel-share" "$BINDIR/backtunnel-share"
|
|
|
|
|
install -Dm755 "scripts/backtunnel-access" "$BINDIR/backtunnel-access"
|
2025-09-20 10:49:45 +02:00
|
|
|
install -Dm755 "scripts/backtunnel-auth-setup" "$BINDIR/backtunnel-auth-setup"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- GUI wrappers (optional) ---
|
|
|
|
|
install -Dm755 "scripts/backtunnel-share-gui" "$BINDIR/backtunnel-share-gui"
|
|
|
|
|
install -Dm755 "scripts/backtunnel-access-gui" "$BINDIR/backtunnel-access-gui"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Terminal opener + TUIs (used by service menus) ---
|
|
|
|
|
install -Dm755 "scripts/backtunnel-open-term" "$BINDIR/backtunnel-open-term"
|
|
|
|
|
install -Dm755 "scripts/backtunnel-share-tui" "$BINDIR/backtunnel-share-tui"
|
|
|
|
|
install -Dm755 "scripts/backtunnel-access-tui" "$BINDIR/backtunnel-access-tui"
|
2025-09-14 20:41:51 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Man page ---
|
|
|
|
|
install -Dm644 "man/backtunnel.1" "$MANDIR/backtunnel.1"
|
2025-09-14 20:41:51 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Bash completions (install for both command names) ---
|
|
|
|
|
install -Dm644 "completions/backtunnel.bash" "$BCOMP/backtunnel-share"
|
|
|
|
|
install -Dm644 "completions/backtunnel.bash" "$BCOMP/backtunnel-access"
|
2025-09-14 20:41:51 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Dolphin service menus (Plasma 6) ---
|
|
|
|
|
install -Dm644 "servicemenus/backtunnel_share.desktop" "$KIO_SM/backtunnel_share.desktop"
|
|
|
|
|
install -Dm644 "servicemenus/backtunnel_access.desktop" "$KIO_SM/backtunnel_access.desktop"
|
2025-09-14 20:41:51 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Plasma 5 legacy path (harmless if unused) ---
|
|
|
|
|
install -Dm644 "servicemenus/backtunnel_share.desktop" "$KSVC5/backtunnel_share.desktop"
|
|
|
|
|
install -Dm644 "servicemenus/backtunnel_access.desktop" "$KSVC5/backtunnel_access.desktop"
|
2025-09-14 11:29:21 +02:00
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
# --- Optional desktop launcher ---
|
|
|
|
|
if [[ -f "desktop/backtunnel.desktop" ]]; then
|
|
|
|
|
install -Dm644 "desktop/backtunnel.desktop" "$APPDIR/backtunnel.desktop"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# --- Example profiles (system default + packaged fallback) ---
|
|
|
|
|
install -Dm644 "docs/profiles.ini.example" "$DESTDIR/etc/backtunnel/profiles.ini"
|
|
|
|
|
install -Dm644 "docs/profiles.ini.example" "$SHARE_DIR/profiles.ini"
|
|
|
|
|
|
|
|
|
|
# --- Refresh desktop/KDE cache (best-effort) ---
|
|
|
|
|
if command -v update-desktop-database >/dev/null 2>&1; then
|
|
|
|
|
say "Refreshing desktop database..."
|
|
|
|
|
update-desktop-database -q || true
|
|
|
|
|
fi
|
2025-09-14 14:11:36 +02:00
|
|
|
if command -v kbuildsycoca6 >/dev/null 2>&1; then
|
2025-09-19 15:30:41 +02:00
|
|
|
say "Rebuilding KDE sycoca (Plasma 6)..."
|
2025-09-14 14:11:36 +02:00
|
|
|
kbuildsycoca6 --noincremental >/dev/null 2>&1 || true
|
|
|
|
|
elif command -v kbuildsycoca5 >/dev/null 2>&1; then
|
2025-09-19 15:30:41 +02:00
|
|
|
say "Rebuilding KDE sycoca (Plasma 5)..."
|
2025-09-14 14:11:36 +02:00
|
|
|
kbuildsycoca5 --noincremental >/dev/null 2>&1 || true
|
|
|
|
|
fi
|
|
|
|
|
|
2025-09-19 15:30:41 +02:00
|
|
|
say "Install complete."
|