diff --git a/Makefile b/Makefile index 2410ee3..043ab71 100644 --- a/Makefile +++ b/Makefile @@ -38,18 +38,19 @@ init: cp "$(BT_CFG_EXAMPLE)" "$(BT_CFG_FILE)"; \ echo "Created $(BT_CFG_FILE) from $(BT_CFG_EXAMPLE)."; \ else \ - echo "Example file $(BT_CFG_EXAMPLE) not found."; exit 1; \ + echo "Example file $(BT_CFG_EXAMPLE)" not found.; exit 1; \ fi \ fi # --- Install/uninstall (root or DESTDIR) --- install: - @install -Dm755 scripts/backtunnel-share "$(DESTDIR)$(BINDIR)/backtunnel-share" - @install -Dm755 scripts/backtunnel-access "$(DESTDIR)$(BINDIR)/backtunnel-access" - @install -Dm755 scripts/backtunnel-share-gui "$(DESTDIR)$(BINDIR)/backtunnel-share-gui" - @install -Dm644 man/backtunnel.1 "$(DESTDIR)$(MANDIR)/man1/backtunnel.1" - @install -Dm644 completions/backtunnel.bash "$(DESTDIR)$(BCOMP)/backtunnel-share" - @install -Dm644 completions/backtunnel.bash "$(DESTDIR)$(BCOMP)/backtunnel-access" + @install -Dm755 scripts/backtunnel-share "$(DESTDIR)$(BINDIR)/backtunnel-share" + @install -Dm755 scripts/backtunnel-access "$(DESTDIR)$(BINDIR)/backtunnel-access" + @install -Dm755 scripts/backtunnel-share-gui "$(DESTDIR)$(BINDIR)/backtunnel-share-gui" + @install -Dm755 scripts/backtunnel-access-gui "$(DESTDIR)$(BINDIR)/backtunnel-access-gui" + @install -Dm644 man/backtunnel.1 "$(DESTDIR)$(MANDIR)/man1/backtunnel.1" + @install -Dm644 completions/backtunnel.bash "$(DESTDIR)$(BCOMP)/backtunnel-share" + @install -Dm644 completions/backtunnel.bash "$(DESTDIR)$(BCOMP)/backtunnel-access" @install -Dm644 servicemenus/backtunnel_share.desktop "$(DESTDIR)$(KIO_SM)/backtunnel_share.desktop" @install -Dm644 servicemenus/backtunnel_access.desktop "$(DESTDIR)$(KIO_SM)/backtunnel_access.desktop" # Plasma 5 legacy path (harmless if unused) @@ -64,7 +65,8 @@ install: uninstall: @rm -f "$(DESTDIR)$(BINDIR)/backtunnel-share" \ "$(DESTDIR)$(BINDIR)/backtunnel-access" \ - "$(DESTDIR)$(BINDIR)/backtunnel-share-gui" + "$(DESTDIR)$(BINDIR)/backtunnel-share-gui" \ + "$(DESTDIR)$(BINDIR)/backtunnel-access-gui" @rm -f "$(DESTDIR)$(MANDIR)/man1/backtunnel.1" @rm -f "$(DESTDIR)$(BCOMP)/backtunnel-share" \ "$(DESTDIR)$(BCOMP)/backtunnel-access" @@ -92,6 +94,7 @@ check: @bash -n scripts/backtunnel-share @bash -n scripts/backtunnel-access @bash -n scripts/backtunnel-share-gui + @bash -n scripts/backtunnel-access-gui @echo "bash -n OK." shellcheck: @@ -99,3 +102,4 @@ shellcheck: @shellcheck scripts/backtunnel-share @shellcheck scripts/backtunnel-access @shellcheck scripts/backtunnel-share-gui + @shellcheck scripts/backtunnel-access-gui diff --git a/scripts/backtunnel_access-gui b/scripts/backtunnel-access-gui similarity index 97% rename from scripts/backtunnel_access-gui rename to scripts/backtunnel-access-gui index 9b90ee1..6fa047e 100644 --- a/scripts/backtunnel_access-gui +++ b/scripts/backtunnel-access-gui @@ -1,4 +1,7 @@ #!/usr/bin/env bash + +# Copyright (c) 2025. LUXIM d.o.o., Slovenia - Matjaž Mozetič. + set -euo pipefail LOG="/tmp/backtunnel-access-gui.$UID.log" diff --git a/scripts/backtunnel-share b/scripts/backtunnel-share index 23b1e00..484c450 100644 --- a/scripts/backtunnel-share +++ b/scripts/backtunnel-share @@ -219,7 +219,8 @@ if $INVITE; then # Paste this on the REMOTE host (or SSH there first, then paste): ${INVITE_CMD} # Unmount when done: -fusermount -u '${INVITE_MOUNT}' +# (use the one available on your system) +fusermount -u '${INVITE_MOUNT}' || fusermount3 -u '${INVITE_MOUNT}' EOT ) echo "🔗 Invite (copy to chat):" diff --git a/scripts/backtunnel-share-gui b/scripts/backtunnel-share-gui index cb4690c..d2ade4f 100644 --- a/scripts/backtunnel-share-gui +++ b/scripts/backtunnel-share-gui @@ -1,4 +1,6 @@ #!/usr/bin/env bash +# Copyright (c) 2025. LUXIM d.o.o., Slovenia - Matjaž Mozetič. + # GUI wrapper for BackTunnel "Share" action (Dolphin service menu) # Prompts for parameters via kdialog and launches backtunnel-share in a terminal. diff --git a/scripts/install.sh b/scripts/install.sh index 4c3b70d..44c86cc 100644 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -4,52 +4,41 @@ set -euo pipefail -# Install binaries -echo "📦 Installing BackTunnel binaries to /usr/local/bin..." -sudo install -m 0755 scripts/backtunnel-share /usr/local/bin/backtunnel-share -sudo install -m 0755 scripts/backtunnel-access /usr/local/bin/backtunnel-access +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" -# Man page -echo "📚 Installing man page..." -sudo install -m 0644 man/backtunnel.1 /usr/local/share/man/man1/backtunnel.1 || true -sudo mandb || true +echo "Removing BackTunnel from $PREFIX ..." -# Bash completions -if [[ -d /usr/share/bash-completion/completions ]]; then - echo "🧠 Installing bash completion ..." - sudo install -m 0644 completions/backtunnel.bash /usr/share/bash-completion/completions/backtunnel-share || true - sudo install -m 0644 completions/backtunnel.bash /usr/share/bash-completion/completions/backtunnel-access || true -elif [[ -d /etc/bash_completion.d ]]; then - echo "🧠 Installing bash completion ..." - sudo install -m 0644 completions/backtunnel.bash /etc/bash_completion.d/backtunnel || true -fi +rm -f "$BINDIR/backtunnel-share" \ + "$BINDIR/backtunnel-access" \ + "$BINDIR/backtunnel-share-gui" \ + "$BINDIR/backtunnel-access-gui" -# Dolphin service menus (Plasma 6) -if [[ -d /usr/share/kio/servicemenus ]]; then - echo "🖱️ Installing Dolphin service menus (Plasma 6)..." - sudo install -m 0644 servicemenus/backtunnel_share.desktop /usr/share/kio/servicemenus/backtunnel_share.desktop || true - sudo install -m 0644 servicemenus/backtunnel_access.desktop /usr/share/kio/servicemenus/backtunnel_access.desktop || true -fi +rm -f "$MANDIR/backtunnel.1" -# Dolphin service menus (Plasma 5) -if [[ -d /usr/share/kservices5/ServiceMenus ]]; then - echo "🖱️ Installing Dolphin service menus (Plasma 5)..." - sudo install -m 0644 servicemenus/backtunnel_share.desktop /usr/share/kservices5/ServiceMenus/backtunnel_share.desktop || true - sudo install -m 0644 servicemenus/backtunnel_access.desktop /usr/share/kservices5/ServiceMenus/backtunnel_access.desktop || true -fi +rm -f "$BCOMP/backtunnel-share" \ + "$BCOMP/backtunnel-access" -# Desktop launcher (optional) -if [[ -d /usr/share/applications ]]; then - echo "🖥️ Installing desktop launcher ..." - sudo install -m 0644 desktop/backtunnel.desktop /usr/share/applications/backtunnel.desktop || true -fi +rm -f "$KIO_SM/backtunnel_share.desktop" \ + "$KIO_SM/backtunnel_access.desktop" \ + "$KSVC5/backtunnel_share.desktop" \ + "$KSVC5/backtunnel_access.desktop" -# Refresh desktop DB and KDE service cache (best-effort) -command -v update-desktop-database >/dev/null 2>&1 && sudo update-desktop-database -q || true +rm -f "$APPDIR/backtunnel.desktop" || true + +# Do not remove /usr/share/backtunnel/profiles.ini (packaged example) — leave it. + +# Refresh caches +command -v update-desktop-database >/dev/null 2>&1 && update-desktop-database -q || true 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 -echo "✅ BackTunnel installed. You may need to restart your shell and Dolphin." +echo "BackTunnel removed."