Add BackTunnel package: Reverse SSH folder sharing toolkit with KDE integration. Includes service menu support, bash completion, and desktop launcher.
This commit is contained in:
60
PKGBUILD
Normal file
60
PKGBUILD
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# Maintainer: Matjaž Mozetič <matjaz@matmoz.si>
|
||||||
|
# Project: BackTunnel – Reverse SSH folder sharing toolkit with Dolphin (KDE) integration
|
||||||
|
# Repo: https://labs.pmisuite.com/PMISuite/BackTunnel
|
||||||
|
|
||||||
|
pkgname=backtunnel
|
||||||
|
pkgver=1.1.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="BackTunnel – Reverse SSH folder sharing toolkit with Dolphin (KDE) service menus"
|
||||||
|
arch=('any')
|
||||||
|
url="https://labs.pmisuite.com/PMISuite/BackTunnel"
|
||||||
|
license=('GPL3')
|
||||||
|
depends=('bash' 'openssh' 'sshfs' 'kdialog' 'konsole')
|
||||||
|
optdepends=('bash-completion: tab completion for backtunnel-share/access'
|
||||||
|
'plasma-desktop: Dolphin (KDE/Plasma) service menus')
|
||||||
|
makedepends=('git')
|
||||||
|
source=("git+https://labs.pmisuite.com/PMISuite/BackTunnel.git")
|
||||||
|
sha256sums=('SKIP')
|
||||||
|
install=${pkgname}.install
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd "${srcdir}/BackTunnel"
|
||||||
|
if git describe --tags --abbrev=0 >/dev/null 2>&1; then
|
||||||
|
local tag; tag=$(git describe --tags --abbrev=0)
|
||||||
|
local desc; desc=$(git describe --tags --long --match "${tag}" 2>/dev/null || git describe --tags --long)
|
||||||
|
# v1.2.3-4-gabcd123 -> 1.2.3.r4.gabcd123
|
||||||
|
echo "${desc}" | sed -E 's/^v//; s/-([0-9]+)-g/.r\1.g/; s/-/./g'
|
||||||
|
else
|
||||||
|
printf "0.0.0.r%s.g%s\n" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "${srcdir}/BackTunnel"
|
||||||
|
|
||||||
|
# Binaries
|
||||||
|
install -Dm755 "scripts/backtunnel-share" "${pkgdir}/usr/bin/backtunnel-share"
|
||||||
|
install -Dm755 "scripts/backtunnel-access" "${pkgdir}/usr/bin/backtunnel-access"
|
||||||
|
|
||||||
|
# Man page
|
||||||
|
install -Dm644 "man/backtunnel.1" "${pkgdir}/usr/share/man/man1/backtunnel.1"
|
||||||
|
|
||||||
|
# Bash completion (install for both command names)
|
||||||
|
install -Dm644 "completions/backtunnel.bash" "${pkgdir}/usr/share/bash-completion/completions/backtunnel-share"
|
||||||
|
install -Dm644 "completions/backtunnel.bash" "${pkgdir}/usr/share/bash-completion/completions/backtunnel-access"
|
||||||
|
|
||||||
|
# Desktop launcher
|
||||||
|
install -Dm644 "desktop/backtunnel.desktop" "${pkgdir}/usr/share/applications/backtunnel.desktop"
|
||||||
|
|
||||||
|
# Dolphin service menus (Plasma 6 and Plasma 5)
|
||||||
|
install -Dm644 "servicemenus/backtunnel_share.desktop" "${pkgdir}/usr/share/kio/servicemenus/backtunnel_share.desktop"
|
||||||
|
install -Dm644 "servicemenus/backtunnel_access.desktop" "${pkgdir}/usr/share/kio/servicemenus/backtunnel_access.desktop"
|
||||||
|
install -Dm644 "servicemenus/backtunnel_share.desktop" "${pkgdir}/usr/share/kservices5/ServiceMenus/backtunnel_share.desktop"
|
||||||
|
install -Dm644 "servicemenus/backtunnel_access.desktop" "${pkgdir}/usr/share/kservices5/ServiceMenus/backtunnel_access.desktop"
|
||||||
|
|
||||||
|
# Docs
|
||||||
|
install -Dm644 "docs/README.md" "${pkgdir}/usr/share/doc/${pkgname}/README.md"
|
||||||
|
|
||||||
|
# License
|
||||||
|
install -Dm644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
||||||
|
}
|
||||||
27
backtunnel.install
Normal file
27
backtunnel.install
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
post_install() {
|
||||||
|
# Refresh desktop DB
|
||||||
|
if command -v update-desktop-database >/dev/null 2>&1; then
|
||||||
|
update-desktop-database -q || true
|
||||||
|
fi
|
||||||
|
# Rebuild KDE service cache
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
post_upgrade() {
|
||||||
|
post_install
|
||||||
|
}
|
||||||
|
|
||||||
|
post_remove() {
|
||||||
|
if command -v update-desktop-database >/dev/null 2>&1; then
|
||||||
|
update-desktop-database -q || true
|
||||||
|
fi
|
||||||
|
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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user