Files
BackTunnel/scripts/install.sh
sysadminmatmoz 608a6a371f Introduce terminal-based workflows for BackTunnel via TUI scripts and service menus
Add `backtunnel-open-term`, `backtunnel-share-tui`, and `backtunnel-access-tui` scripts for terminal-based interaction. Update Dolphin service menus to enable TUI workflows, with improved terminal detection logic. Enhance installation and uninstallation scripts to handle new files. Update README with terminal workflow details and logging information.
2025-09-19 15:30:41 +02:00

71 lines
2.8 KiB
Bash

#!/usr/bin/env bash
# BackTunnel installer (terminal/TUI service menus)
set -euo pipefail
PREFIX=${PREFIX:-/usr}
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}"
# --- Binaries (CLI) ---
install -Dm755 "scripts/backtunnel-share" "$BINDIR/backtunnel-share"
install -Dm755 "scripts/backtunnel-access" "$BINDIR/backtunnel-access"
# --- GUI wrappers (optional) ---
install -Dm755 "scripts/backtunnel-share-gui" "$BINDIR/backtunnel-share-gui"
install -Dm755 "scripts/backtunnel-access-gui" "$BINDIR/backtunnel-access-gui"
# --- 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"
# --- Man page ---
install -Dm644 "man/backtunnel.1" "$MANDIR/backtunnel.1"
# --- Bash completions (install for both command names) ---
install -Dm644 "completions/backtunnel.bash" "$BCOMP/backtunnel-share"
install -Dm644 "completions/backtunnel.bash" "$BCOMP/backtunnel-access"
# --- 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"
# --- 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"
# --- 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
if command -v kbuildsycoca6 >/dev/null 2>&1; then
say "Rebuilding KDE sycoca (Plasma 6)..."
kbuildsycoca6 --noincremental >/dev/null 2>&1 || true
elif command -v kbuildsycoca5 >/dev/null 2>&1; then
say "Rebuilding KDE sycoca (Plasma 5)..."
kbuildsycoca5 --noincremental >/dev/null 2>&1 || true
fi
say "Install complete."