#!/venv/bin/python import os.path import yaml import jinja2 def write_config(filename, **kwargs): with open(filename + ".jnj") as f: template = jinja2.Template(f.read()) rendered = template.render(kwargs) with open(filename, 'w') as f: f.write(rendered) def generate_nginx_config(): """ Generates nginx config from the app config """ use_https = os.path.exists('conf/stack/ssl.key') write_config('conf/nginx/nginx.conf', use_https=use_https) def generate_server_config(config): """ Generates server config from the app config """ config = config or {} tuf_server = config.get('TUF_SERVER', None) tuf_host = config.get('TUF_HOST', None) signing_enabled = config.get('FEATURE_SIGNING', False) maximum_layer_size = config.get('MAXIMUM_LAYER_SIZE', '20G') write_config('conf/nginx/server-base.conf', tuf_server=tuf_server, tuf_host=tuf_host, signing_enabled=signing_enabled, maximum_layer_size=maximum_layer_size) if __name__ == "__main__": if os.path.exists('conf/stack/config.yaml'): with open('conf/stack/config.yaml', 'r') as f: config = yaml.load(f) else: config = None generate_server_config(config) generate_nginx_config()