Mercurial > hg > MakeItSo
diff makeitso/file2template.py @ 183:55b34a5a2e5f
basic form now works
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sun, 23 Mar 2014 16:31:37 -0700 |
parents | 215a71ac0eff |
children | be33152d7d0c |
line wrap: on
line diff
--- a/makeitso/file2template.py Sun Mar 23 11:53:11 2014 -0700 +++ b/makeitso/file2template.py Sun Mar 23 16:31:37 2014 -0700 @@ -6,10 +6,9 @@ """ # TODO: shell script extension +import argparse import os -import subprocess import sys -from argparse import ArgumentParser here = os.path.dirname(os.path.realpath(__file__)) string = (str, unicode) @@ -23,11 +22,9 @@ import argparse import sys -variables = { -{variables} -} +variables = dict({variables}) -template = """{content}""" +template = """{template}""" def main(args=sys.argv[1:]): """CLI""" @@ -43,25 +40,44 @@ ''' -class File2TemplateParser(ArgumentParser): +class File2TemplateParser(argparse.ArgumentParser): """argument parser for `%(prog)s`""" def __init__(self): - ArgumentParser.__init__(self, description=__doc__) - parser.add_argument('input', nargs='?', + argparse.ArgumentParser.__init__(self, description=__doc__) + self.add_argument('input', nargs='?', type=argparse.FileType('r'), default=sys.stdin, help='input file, or read from stdin if ommitted') - parser.add_argument('variables', nargs='*', + self.add_argument('variables', nargs='*', help="variables to use") - parser.add_argument('-o', '--output', dest='output', + self.add_argument('-o', '--output', dest='output', type=argparse.FileType('r'), default=sys.stdout, help="output file, or stdout if ommitted'") def main(args=sys.argv[1:]): + """CLI""" + # parse command line parser = File2TemplateParser() options = parser.parse_args(args) + # get variable values + lines = [] + for v in options.variables: + if '=' in v: + key, value = v.split('=', 1) + else: + key = v + value = 'None' + lines.append('{}: {},'.format(repr(key), value)) + varstring = '\n'.join(lines) + + # read the content + + # interpolate the template + output = template.format(variables=varstring, template='') + options.output.write(output) + if __name__ == '__main__': main()