blob: 7d95ecff39c81c124261cbd8e44daef19699278f [file] [log] [blame]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import argparse
import io
import sys
import yaml
from cookiecutter.main import cookiecutter
def read_ctx_file(config_file):
with io.open(config_file, encoding='utf-8') as file_handle:
yaml_string = file_handle.read()
try:
yaml_dict = yaml.load(yaml_string)
except Exception as e:
msg = 'Error: Could not load config YAML file.\n%s' % e
print(msg, file=sys.stderr)
sys.exit(1)
return yaml_dict.get('default_context', {})
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--template',
required=True,
help='path to cookiecutter template')
parser.add_argument('--config-file',
help='path to YAML config file')
parser.add_argument('--output-dir',
help='path to output model')
args = parser.parse_args()
template = args.template
config_file = args.config_file
extra_context = read_ctx_file(config_file) if config_file else {}
output_dir = args.output_dir or '.'
cookiecutter(
template,
extra_context=extra_context,
output_dir=output_dir,
no_input=True,
overwrite_if_exists=True
)