summaryrefslogtreecommitdiff
path: root/branding
diff options
context:
space:
mode:
Diffstat (limited to 'branding')
-rwxr-xr-xbranding/scripts/generate-snap.py43
-rwxr-xr-xbranding/templates/snap/generate.py27
-rw-r--r--branding/templates/snap/snapcraft-template.yaml83
3 files changed, 153 insertions, 0 deletions
diff --git a/branding/scripts/generate-snap.py b/branding/scripts/generate-snap.py
new file mode 100755
index 0000000..c3c5419
--- /dev/null
+++ b/branding/scripts/generate-snap.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python3
+
+import json
+import os
+import sys
+
+import configparser
+
+from provider import getDefaultProvider
+from provider import getProviderData
+
+
+VERSION = os.environ.get('VERSION', 'unknown')
+SCRIPT = 'generate-snap.py'
+
+
+def writeOutput(data, outfile):
+
+ with open(outfile, 'w') as outf:
+ outf.write(json.dumps(data))
+
+
+if __name__ == "__main__":
+ env_provider_conf = os.environ.get('PROVIDER_CONFIG')
+ if env_provider_conf:
+ if os.path.isfile(env_provider_conf):
+ print("[+] Overriding provider config per "
+ "PROVIDER_CONFIG variable")
+ configfile = env_provider_conf
+
+ config = configparser.ConfigParser()
+ config.read(configfile)
+ provider = getDefaultProvider(config)
+ data = getProviderData(provider, config)
+
+ if len(sys.argv) != 2:
+ print('Usage: {} <output_file>'.format(SCRIPT))
+ sys.exit(1)
+
+ outputf = sys.argv[1]
+
+ data['version'] = VERSION
+ writeOutput(data, outputf)
diff --git a/branding/templates/snap/generate.py b/branding/templates/snap/generate.py
new file mode 100755
index 0000000..41d563d
--- /dev/null
+++ b/branding/templates/snap/generate.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+"""
+generate.py
+
+Generate a snap package for a given provider.
+"""
+
+import json
+import os
+from string import Template
+
+
+TEMPLATE = 'snapcraft-template.yaml'
+SNAPCRAFT = 'snapcraft.yaml'
+
+
+here = os.path.split(os.path.realpath(__file__))[0]
+data = json.load(open(os.path.join(here, 'data.json')))
+
+
+template = Template(open(TEMPLATE).read())
+
+with open(SNAPCRAFT, 'w') as output:
+ output.write(template.safe_substitute(data))
+
+print("[+] Snapcraft spec written to {path}".format(
+ path=os.path.abspath(SNAPCRAFT)))
diff --git a/branding/templates/snap/snapcraft-template.yaml b/branding/templates/snap/snapcraft-template.yaml
new file mode 100644
index 0000000..df9c135
--- /dev/null
+++ b/branding/templates/snap/snapcraft-template.yaml
@@ -0,0 +1,83 @@
+name: ${binaryName}
+version: ${version}
+summary: ${applicationName}, secure VPN. Powered by Bitmask.
+description: |
+ ${applicationName} is an easy, fast, and secure VPN service from ${providerURL}.
+ ${applicationName} does not require a user account, keep logs, or track you in
+ any way. The service is paid for entirely by donations from users like you.
+grade: stable
+confinement: classic
+icon: snap/gui/icon.svg
+base: core18
+
+parts:
+ desktop-gtk3:
+ plugin: nil
+ stage-packages:
+ - libc6
+ prime:
+ - '*'
+ - -usr/include
+ - -usr/lib/locale
+ - -usr/share/X11/locale
+ - -usr/share/doc
+ - -usr/share/locale
+ - -usr/share/man
+
+ bitmask-root:
+ after: [desktop-gtk3]
+ plugin: dump
+ source: https://0xacab.org/leap/bitmask-dev/
+ source-type: git
+ build-packages:
+ - wget
+ override-prime: |
+ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+ mkdir -p bin
+ wget -O bin/bitmask-root https://0xacab.org/leap/bitmask-dev/raw/master/src/leap/bitmask/vpn/helpers/linux/bitmask-root
+ chmod +x bin/bitmask-root
+ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+
+ openvpn:
+ plugin: nil
+ stage-packages:
+ - openvpn
+ - libc6
+ prime:
+ - -usr/share/doc
+ - -usr/share/man
+
+ bitmask-vpn:
+ after: [desktop-gtk3]
+ plugin: go
+ source-type: git
+ go-packages:
+ - 0xacab.org/leap/bitmask-vpn/cmd/bitmask-vpn
+ override-build: |
+ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+ #cat $SNAPCRAFT_PROJECT_DIR/snap/local/bitmask-vpn.desktop
+ cp ../../../gui/bitmask-vpn.desktop $SNAPCRAFT_PRIME/${binaryName}.desktop
+ snapcraftctl build
+ echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
+ build-packages:
+ - pkg-config
+ - patchelf
+ - libpcre3-dev
+ - libappindicator3-dev
+ - libgtk-3-dev
+ stage-packages:
+ - libc6
+ - libpcre3
+ - libappindicator3-1
+ - zlib1g
+
+apps:
+ launcher:
+ command: bin/bitmask-vpn
+ desktop: ${binaryName}.desktop
+ environment:
+ LD_LIBRARY_PATH: "$SNAP/usr/lib/$(gcc -print-multiarch):$SNAP/lib/$(gcc -print-multiarch):$LD_LIBRARY_PATH"
+ openvpn:
+ command: usr/sbin/openvpn
+ bitmask-root:
+ command: bin/bitmask-root