Added an invirt mako render script.
authorGreg Brockman <gdb@mit.edu>
Mon, 1 Feb 2010 03:48:26 +0000 (22:48 -0500)
committerGreg Brockman <gdb@mit.edu>
Mon, 1 Feb 2010 03:48:26 +0000 (22:48 -0500)
svn path=/trunk/packages/invirt-base/; revision=2977

debian/changelog
files/lib/init/gen-files.sh
scripts/invirt-mako-render [new file with mode: 0755]

index ff1b3fb..554cc5c 100644 (file)
@@ -1,3 +1,9 @@
+invirt-base (0.0.31) unstable; urgency=low
+
+  * Added an invirt mako render script.
+
+ -- Greg Brockman <gdb@mit.edu>  Sat, 23 Jan 2010 00:48:44 -0500
+
 invirt-base (0.0.30) unstable; urgency=low
 
   * Cleanup the handling of triggers...so that it actually works.
 invirt-base (0.0.30) unstable; urgency=low
 
   * Cleanup the handling of triggers...so that it actually works.
index 2baa994..23ff8ad 100644 (file)
@@ -6,12 +6,12 @@ if [ $BASH_VERSION ]; then
   gen_files()
   {
     for f in "${GEN_FILES[@]}"; do
   gen_files()
   {
     for f in "${GEN_FILES[@]}"; do
-      mako-render "$f".mako >"$f"
+      invirt-mako-render "$f".mako >"$f"
     done
   }
 else
   gen_files()
   {
     done
   }
 else
   gen_files()
   {
-    mako-render "$GEN_FILES".mako >"$GEN_FILES"
+     invirt-mako-render "$GEN_FILES".mako >"$GEN_FILES"
   }
 fi
   }
 fi
diff --git a/scripts/invirt-mako-render b/scripts/invirt-mako-render
new file mode 100755 (executable)
index 0000000..1eaeede
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/python
+# Modified from mako-render by gdb.
+# TODO: set the lookup path dynamically.
+
+def render(data):
+    from mako.template import Template
+    from mako.lookup import TemplateLookup
+
+    lookup = TemplateLookup(['.', '/etc/apache2/conf.invirt'])
+    return Template(data, lookup=lookup).render()
+
+def main(argv=None):
+    from os.path import isfile
+    from sys import stdin
+
+    if argv is None:
+        import sys
+        argv = sys.argv
+
+    from optparse import OptionParser
+
+    parser = OptionParser("usage: %prog [FILENAME]")
+
+    opts, args = parser.parse_args(argv[1:])
+    if len(args) not in (0, 1):
+        parser.error("wrong number of arguments") # Will exit
+
+    if (len(args) == 0) or (args[0] == "-"):
+        fo = stdin
+    else:
+        filename = args[0]
+        if not isfile(filename):
+            raise SystemExit("error: can't find %s" % filename)
+        fo = open(filename)
+
+    data = fo.read()
+    print render(data)
+
+if __name__ == "__main__":
+    main()