diff --git a/Makefile b/Makefile index 0ac840a..87763db 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,12 @@ # makefile for pamac-url-handler build: - makepkg + makepkg -s install: - pamac-installer pamac-url-handler-*.tar.xz + pamac-installer pamac-url-handler-*.tar.zst remove: pamac-installer --remove pamac-url-handler clean: - $(RM) -rf src/ pkg/ *.tar.xz + $(RM) -rf src/ pkg/ *.tar.zst diff --git a/PKGBUILD b/PKGBUILD index 212c79d..b3da049 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,22 +1,25 @@ -# Maintainer: Your Name +# Maintainer: TROM pkgname=pamac-url-handler pkgver=1.0.0 pkgrel=1 pkgdesc="Install ALPM packages with pamac-installer from URL scheme x-alpm-package://packagename" arch=(any) -url="" +url="https://git.trom.tf/TROMjaro/pamac-url-handler-package" license=(unknown) -depends=('pamac-gtk') +depends=('pamac-gtk' + 'yad' + 'exo' + 'flatpak') provides=('pamac-url-handler') backup=() options=(!strip) install='pamac-url-handler.install' source=("pamac-url-handler" "pamac-url-handler.desktop") -md5sums=('61007bb8b0d00dabb04c06a7e334653f' - 'ca911444c12149c3f11be0a26dd9b2dc') +sha256sums=('SKIP' + 'SKIP') package() { - install -Dm644 ${srcdir}/pamac-url-handler.desktop ${pkgdir}/usr/share/applications/pamac-url-handler.desktop - install -Dm755 ${srcdir}/pamac-url-handler ${pkgdir}/usr/bin/pamac-url-handler + install -Dm644 ${srcdir}/pamac-url-handler.desktop ${pkgdir}/usr/share/applications/pamac-url-handler.desktop + install -Dm755 ${srcdir}/pamac-url-handler ${pkgdir}/usr/bin/pamac-url-handler } diff --git a/README.md b/README.md index a5de176..07900ac 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # pamac URL handler package -Install ALPM packages with `pamac-installer` from URL scheme `x-alpm-package://[aur/]` +Install ALPM packages with `pamac-installer` or `flatpak` from URL scheme `x-alpm-package://[aur// or flatpak//]` ## Building the package @@ -19,4 +19,3 @@ To remove just installed package, use: To cleanup the project, use: `make clean` - diff --git a/pamac-url-handler b/pamac-url-handler old mode 100644 new mode 100755 index b9aa7fd..84d18b0 --- a/pamac-url-handler +++ b/pamac-url-handler @@ -4,12 +4,31 @@ # x-alpm-package://packagename # install: xdg-mime default pamac-url-handler.desktop x-scheme-handler/x-alpm-package -packagename="${1#x-alpm-package://}" -echo "${packagename:0:4}" -if [[ "aur/" == "${packagename:0:4}" ]]; then - name="${packagename##*/}" - pamac-installer --build "$name" - exit 0 +if [ $# != 1 ] || [[ "$1" != 'x-alpm-package://'* ]]; then + echo "Usage: $0 [URL]" + exit 1 fi -pamac-installer "$packagename" +content="${1#x-alpm-package://}" + +# AUR install +if [[ "$content" == 'aur//'* ]]; then + packagename="${content#aur//}" + pamac-installer --build "$packagename" + +# Flatpak install +elif [[ "$content" == 'flatpak//'* ]]; then + appID="${content#flatpak//}" + info=$(flatpak remote-info flathub "$appID") || { + yad --image 'dialog-error' --title 'Alert' --buttons-layout=center --text-align=center --button=yad-close --borders=10 --text "Flatpak ID not found:\n$appID" + exit 1 + } + yad --image 'dialog-question' --title 'Flatpak install' --button=Cancel:1 --button=Install:0 --text "$info" && + exo-open --launch TerminalEmulator \ + bash -c "flatpak install --assumeyes flathub $appID ; printf '\n'; read -n1 -rsp 'press any key to close window...'" + +# Repo install +else + packagename=$content + pamac-installer "$packagename" +fi