summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD33
-rw-r--r--ivpn-ui.install58
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;
+}