summaryrefslogtreecommitdiff
path: root/branding/scripts/init
diff options
context:
space:
mode:
Diffstat (limited to 'branding/scripts/init')
-rwxr-xr-xbranding/scripts/init108
1 files changed, 108 insertions, 0 deletions
diff --git a/branding/scripts/init b/branding/scripts/init
new file mode 100755
index 0000000..ba9ce52
--- /dev/null
+++ b/branding/scripts/init
@@ -0,0 +1,108 @@
+#!/usr/bin/env python3
+# (c) LEAP Encryption Access Project 2020
+# License: GPL
+
+import subprocess
+import sys
+import os
+
+VENDOR_PATH = None
+SCRIPT_NAME = sys.argv[0]
+CA_README = "config/CERT.Readme"
+ASSETS_README = "assets/FILES.Readme"
+
+def initVendor():
+ global VENDOR_PATH
+ if not VENDOR_PATH:
+ bail("ERROR: Please set VENDOR_PATH environment variable.")
+ VENDOR_PATH = os.path.abspath(VENDOR_PATH)
+ if os.path.isdir(VENDOR_PATH):
+ bail("ERROR: VENDOR_PATH folder already exists")
+
+ for d in ["config", "assets", "pkg"]:
+ os.makedirs(os.path.join(VENDOR_PATH, d))
+
+ initVendorConfig()
+ initGitRepo()
+ displayRepoInfo()
+
+def displayRepoInfo():
+ print("[+] Initialized repo in", VENDOR_PATH)
+ print(f"[ ] - Add the assets in the assets/ folder, see {ASSETS_README}.")
+ print(f"[ ] - Add the CA certificate in the config/ folder, see {CA_README}.")
+ print("[ ] - Remember to commit your changes.")
+ print()
+ print("[+] After doing that, you can run 'make vendor_check' to validate the configuration for your provider.")
+
+def bail(msg=None):
+ if not msg:
+ print("ERROR: no arguments supported!")
+ print('Usage: {scriptname}'.format(
+ scriptname=SCRIPT_NAME))
+ else:
+ print(msg)
+ sys.exit(1)
+
+def getVendorPath():
+ return os.environ.get('VENDOR_PATH')
+
+def initVendorConfig():
+
+ with open(os.path.join(VENDOR_PATH, "config", "vendor.conf"), "w") as f:
+ f.write(CONF_TEMPLATE)
+
+ with open(os.path.join(VENDOR_PATH, CA_README), "w") as f:
+ f.write(CA_INFO)
+
+ with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "ASSETS_LIST")) as f:
+ allAssets = f.read()
+
+ with open(os.path.join(VENDOR_PATH, ASSETS_README), "w") as f:
+ f.write(ASSETS_INFO)
+ f.write(allAssets)
+
+def initGitRepo():
+ out = subprocess.run(['git', 'init'], cwd=VENDOR_PATH)
+ if out.returncode != 0:
+ print(f'ERROR: cannot initialize git repo in {VENDOR_PATH}')
+
+
+CONF_TEMPLATE = """[default]
+
+provider = myprovider
+
+[myprovider]
+
+name = MyProvider
+applicationName = MyProviderVPN
+binaryName = myprovider-vpn
+
+providerURL = example.org
+auth = anon
+apiURL = https://api.myprovider.net/
+caURL = https://myprovider.net/ca.crt
+
+infoURL = https://myprovider.net/vpn
+tosURL = https://myprovider.net/tos
+helpURL = https://myprovider.net/support
+
+geolocationAPI = https://myprovider.net:9001/json
+
+askForDonations = true
+donateURL = https://myprovider.net/vpn/donate
+"""
+
+CA_INFO = """Place in this folder your provider's CA certificate, with the name:
+
+ <providerName>-ca.crt
+"""
+
+ASSETS_INFO = """This is the list of assets that you MUST place in this folder for your provider:
+
+"""
+
+if __name__ == "__main__":
+ if len(sys.argv) != 1:
+ bail()
+ VENDOR_PATH = getVendorPath()
+ initVendor()