import argparse import logging import os import sys from jinja2 import Environment from jinja2 import FileSystemLoader logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) log = logging.getLogger('mysql_template_config') if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('-c', '--config-template') parser.add_argument('-o', '--config-file') args = parser.parse_args() if os.getenv('MYSQL_ROLE'): assert os.environ['MYSQL_ROLE'] in ['replica', 'source'], 'MYSQL_ROLE must be one of [replica, source]' env_variables = os.environ.items() jinja_env = Environment( loader=FileSystemLoader('/'), lstrip_blocks=True, trim_blocks=True ) config_template = jinja_env.get_template(args.config_template) config_file = config_template.render(env_variables) log.info('%s was successfully created' % args.config_file) with open(args.config_file, 'w') as f: f.write(config_file)