diff options
-rw-r--r-- | .SRCINFO | 15 | ||||
-rw-r--r-- | PKGBUILD | 33 | ||||
-rw-r--r-- | ivpn-ui.install | 58 |
3 files changed, 106 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..168412cf38ad --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,15 @@ +pkgbase = ivpn-ui + pkgdesc = IVPN Graphical User Interface + pkgver = 3.2.1 + pkgrel = 1 + url = https://ivpn.net + install = ivpn-ui.install + arch = x86_64 + license = GPL3 + makedepends = npm + depends = ivpn + source = ivpn-ui-src-v3.2.1.tar.gz::https://github.com/ivpn/desktop-app-ui2/archive/v3.2.1.tar.gz + sha256sums = e3131ba9745cd67de8cf91ce5208ff7006153a23e69b9132683ec70a40a74b5b + +pkgname = ivpn-ui + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..60149547c846 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Alexandr Stelnykovych <alexandr dot stelnykovych at ivpn dot net> + +pkgname="ivpn-ui" +pkgver=3.2.1 +pkgrel=1 +pkgdesc="IVPN Graphical User Interface" +arch=('x86_64') +url="https://ivpn.net" +license=('GPL3') +depends=('ivpn') +makedepends=('npm') +install="ivpn-ui.install" + +source=("ivpn-ui-src-v${pkgver}.tar.gz::https://github.com/ivpn/desktop-app-ui2/archive/v${pkgver}.tar.gz") +sha256sums=('e3131ba9745cd67de8cf91ce5208ff7006153a23e69b9132683ec70a40a74b5b') + +build() { + cd "$srcdir/desktop-app-ui2-${pkgver}" + npm install + ./References/Linux/build.sh +} + +package() { + cd "$srcdir/desktop-app-ui2-${pkgver}" + + mkdir -p "$pkgdir/opt/ivpn/ui/bin" + cp -fr dist_electron/linux-unpacked/* "$pkgdir/opt/ivpn/ui/bin" + + install -D "References/Linux/ui/IVPN.desktop" "$pkgdir/usr/share/applications/IVPN.desktop" + + install -D "References/Linux/ui/IVPN.desktop" "$pkgdir/opt/ivpn/ui/IVPN.desktop" + install -D "References/Linux/ui/ivpnicon.svg" "$pkgdir/opt/ivpn/ui/ivpnicon.svg" +} diff --git a/ivpn-ui.install b/ivpn-ui.install new file mode 100644 index 000000000000..deb5ec114fd8 --- /dev/null +++ b/ivpn-ui.install @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +silent() { + "$@" > /dev/null 2>&1 +} + +prepare() { + # some linux versions have problems running Electron without this + sudo chmod 4755 /opt/ivpn/ui/bin/chrome-sandbox || echo "[!] Failed to 'chmod' for '/opt/ivpn/ui/bin/chrome-sandbox'" +} + +killapp() { + echo "[+] Checking for 'ivpn-ui' running processes ..." + ps aux | grep /opt/ivpn/ui/bin/ivpn-ui | grep -v grep > /dev/null 2>&1 + + if [ $? -eq 0 ]; then + echo "[!] Detected: IVPN app is running" + + if [ -f /usr/local/bin/ivpn ]; then + echo "[+] Disabling firewall (if enabled) ..." + /usr/local/bin/ivpn firewall -off || echo "[-] Failed to disable firewall" + echo "[+] Disconnecting (if connected) ..." + /usr/local/bin/ivpn disconnect || echo "[-] Failed to disconnect" + fi + + echo "[+] Killing all 'ivpn-ui' processes ..." + # We should be careful here: WE SHOULD NOT KILL THIS SCRIPT :) + # (which also can have 'ivpn-ui' in process description) + silent kill -TERM $(ps aux | grep /opt/ivpn/ui/bin/ivpn-ui | grep -v grep | awk '{print $2}') + silent sleep 2 + + ps aux | grep /opt/ivpn/ui/bin/ivpn-ui | grep -v grep > /dev/null 2>&1 + if [ $? -eq 0 ]; then + silent kill -KILL $(ps aux | grep /opt/ivpn/ui/bin/ivpn-ui | grep -v grep | awk '{print $2}') + fi + fi +} + +## arg 1: the new package version +pre_install() { + killapp; +} + +pre_upgrade() { + killapp; +} + +pre_remove() { + killapp; +} + +post_install() { + prepare; +} + +post_upgrade() { + prepare; +} |