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.
This commit is contained in:
@@ -1,44 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2025. LUXIM d.o.o., Slovenia - Matjaž Mozetič.
|
||||
|
||||
# BackTunnel installer (terminal/TUI service menus)
|
||||
set -euo pipefail
|
||||
|
||||
PREFIX=${PREFIX:-/usr}
|
||||
BINDIR="$PREFIX/bin"
|
||||
MANDIR="$PREFIX/share/man/man1"
|
||||
KIO_SM="$PREFIX/share/kio/servicemenus"
|
||||
KSVC5="$PREFIX/share/kservices5/ServiceMenus"
|
||||
APPDIR="$PREFIX/share/applications"
|
||||
BCOMP="$PREFIX/share/bash-completion/completions"
|
||||
DESTDIR=${DESTDIR:-}
|
||||
|
||||
echo "Removing BackTunnel from $PREFIX ..."
|
||||
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"
|
||||
|
||||
rm -f "$BINDIR/backtunnel-share" \
|
||||
"$BINDIR/backtunnel-access" \
|
||||
"$BINDIR/backtunnel-share-gui" \
|
||||
"$BINDIR/backtunnel-access-gui"
|
||||
say() { printf '[BackTunnel] %s\n' "$*"; }
|
||||
|
||||
rm -f "$MANDIR/backtunnel.1"
|
||||
say "Installing to PREFIX=${PREFIX} DESTDIR=${DESTDIR}"
|
||||
|
||||
rm -f "$BCOMP/backtunnel-share" \
|
||||
"$BCOMP/backtunnel-access"
|
||||
# --- Binaries (CLI) ---
|
||||
install -Dm755 "scripts/backtunnel-share" "$BINDIR/backtunnel-share"
|
||||
install -Dm755 "scripts/backtunnel-access" "$BINDIR/backtunnel-access"
|
||||
|
||||
rm -f "$KIO_SM/backtunnel_share.desktop" \
|
||||
"$KIO_SM/backtunnel_access.desktop" \
|
||||
"$KSVC5/backtunnel_share.desktop" \
|
||||
"$KSVC5/backtunnel_access.desktop"
|
||||
# --- GUI wrappers (optional) ---
|
||||
install -Dm755 "scripts/backtunnel-share-gui" "$BINDIR/backtunnel-share-gui"
|
||||
install -Dm755 "scripts/backtunnel-access-gui" "$BINDIR/backtunnel-access-gui"
|
||||
|
||||
rm -f "$APPDIR/backtunnel.desktop" || true
|
||||
# --- 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"
|
||||
|
||||
# Do not remove /usr/share/backtunnel/profiles.ini (packaged example) — leave it.
|
||||
# --- Man page ---
|
||||
install -Dm644 "man/backtunnel.1" "$MANDIR/backtunnel.1"
|
||||
|
||||
# Refresh caches
|
||||
command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database -q || true
|
||||
# --- 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
|
||||
|
||||
echo "BackTunnel removed."
|
||||
say "Install complete."
|
||||
|
||||
Reference in New Issue
Block a user