77def env_override (value , key ):
88 return os .getenv (key , value )
99
10- def main ():
10+ def parse_args ():
1111
1212 parser = argparse .ArgumentParser ()
1313
@@ -29,27 +29,36 @@ def main():
2929 help = "Use to specify the output file to create. "
3030 "Defaults to ./docker-compose.yml" )
3131
32- args = parser .parse_args ()
33-
34-
35- template_file_name = args .template
36- output_file_name = args .outputfile
37- data_file_names = ["meta-compose-data.yml" ] + args .datafile
38-
32+ return parser .parse_args ()
3933
34+ def setup_jinja (template_file_name ):
4035
4136 jinja = Environment (loader = FileSystemLoader ("." ), undefined = StrictUndefined )
4237 jinja .filters ['env' ] = env_override
43- template = jinja .get_template (template_file_name )
38+ return jinja .get_template (template_file_name )
39+
40+ def collect_data (data_file_names ):
4441
4542 data = {}
4643 for data_file_name in data_file_names :
4744 if os .path .isfile (data_file_name ):
4845 with open (data_file_name , "r" ) as fh :
4946 data .update (yaml .safe_load (fh ))
47+ return data
5048
49+ def write_compose_file (composition , outputfile ):
5150
52- composition = template .render (data )
53-
54- with open (output_file_name , "w" ) as fh :
51+ with open (outputfile , "w" ) as fh :
5552 fh .write (composition )
53+
54+
55+
56+ def main ():
57+
58+ args = parse_args ()
59+
60+
61+ template = setup_jinja (args .template )
62+ data = collect_data (["meta-compose-data.yml" ] + args .datafile )
63+
64+ write_compose_file (template .render (data ), args .outputfile )
0 commit comments