diff options
Diffstat (limited to 'branding/scripts/gen-providers-json')
-rwxr-xr-x | branding/scripts/gen-providers-json | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/branding/scripts/gen-providers-json b/branding/scripts/gen-providers-json new file mode 100755 index 0000000..0c95cb9 --- /dev/null +++ b/branding/scripts/gen-providers-json @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 + +import configparser +import json +import os +import sys + + +from provider import getDefaultProvider +from provider import getProviderData + +OUTFILE = 'providers.json' +SCRIPT_NAME = 'gen-providers-json' + + +def generateProvidersJSON(configPath, outputJSONPath): + print("output:", outputJSONPath) + config = configparser.ConfigParser() + config.read(configPath) + + # TODO as a first step, we just get the defaultProvider. + # For multi-provider, just add more providers to the dict + + providers = {} + defaultProvider = getDefaultProvider(config) + + providers['default'] = defaultProvider + providers['providers'] = [] + providerData = getProviderData(defaultProvider, config) + addCaData(providerData, configPath) + + providers['providers'].append(providerData) + with open(outputJSONPath, 'w', encoding='utf-8') as f: + json.dump(providers, f, ensure_ascii=False, indent=4) + +def addCaData(data, configfile): + provider = data.get('name').lower() + folder, f = os.path.split(configfile) + caFile = os.path.join(folder, provider, provider + '-ca.crt') + if not os.path.isfile(caFile): + bail('[!] Cannot find CA file in {path}'.format(path=caFile)) + with open(caFile) as ca: + data['caCertString'] = ca.read().strip() + +def bail(msg=None): + if not msg: + print("ERROR: not enough arguments!") + print('Usage: {scriptname}.py <output>'.format( + scriptname=SCRIPT_NAME)) + else: + print(msg) + sys.exit(1) + +if __name__ == "__main__": + print("[+] Generating providers.json...") + if len(sys.argv) != 2: + bail() + + VENDOR_PATH = os.environ.get('VENDOR_PATH') + conf = os.path.join(VENDOR_PATH, 'vendor.conf') + output = sys.argv[1] + generateProvidersJSON(conf, output) |