diff makeitso/main.py @ 0:7a76836b50a7

initial (non-working) commit to makeitso
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 02 Nov 2010 17:56:14 -0700
parents
children c2f8464e0395
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/makeitso/main.py	Tue Nov 02 17:56:14 2010 -0700
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+"""
+filesystem template interpreter
+"""
+
+import os
+import subprocess
+import sys
+
+from optparse import OptionParser
+from tempita import Template
+
+def call(command, *args, **kw):
+    code = subprocess.call(command, *args, **kw)
+    if code:
+        if isinstance(command, basestring):
+            cmdstr = command
+        else:
+            cmdstr = ' '.join(command)
+        raise SystemExit("Command `%s` exited with code %d" % (cmdstr, code))
+
+def template_variables(template):
+    """return the variables needed for a template"""
+    raise NotImplementedError
+
+def main(args=sys.argv[1:]):
+
+    # create option parser
+    usage = '%prog [options]'
+    parser = OptionParser(usage, description=__doc__)
+    parser.add_option('--variables', dest='variables',
+                      help='print the variables in a template')
+    options, args = parser.parse_args(args)
+
+    # template variables
+    variables = {}
+    _vars = []
+    _args = []
+    for arg in args:
+        if '=' in arg:
+            key, value = arg.split('=')
+            variables[key] = value
+        else:
+            _args.append(arg)
+    args = _args
+
+    # get the content
+    content = sys.stdin.read()
+    template = Template(content)
+    print template.interpolate(**variables)
+        
+
+if __name__ == '__main__':
+    main()