#!/usr/bin/env python3 import datetime import os import sys from string import Template import configparser OUTFILE = 'config.go' INFILE = 'config.go.tmpl' CONFIGFILE = 'config/vendor.conf' SCRIPT_NAME = 'vendorize' def getDefaultProvider(config): provider = os.environ.get('PROVIDER') if provider: print('[+] Got provider {} from environemnt'.format(provider)) else: print('[+] Using default provider from config file') provider = config['default']['provider'] return provider def getProviderData(provider, config): print("[+] Configured provider:", provider) c = config[provider] d = dict() keys = ('name', 'applicationName', 'binaryName', 'providerURL', 'tosURL', 'helpURL', 'donateURL', 'apiURL', 'geolocationAPI', 'caCertString') for value in keys: d[value] = c.get(value) d['timeStamp'] = '{:%Y-%m-%d %H:%M:%S}'.format( datetime.datetime.now()) return d def addCaData(data, configfile): provider = data.get('name').lower() folder, f = os.path.split(configfile) caFile = os.path.join(folder, 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 writeOutput(data, infile, outfile): with open(infile) as infile: s = Template(infile.read()) with open(outfile, 'w') as outf: outf.write(s.substitute(data)) def bail(msg=None): if not msg: print('Usage: {scriptname}.py