Index: trunk/packages/invirt-base/debian/changelog
===================================================================
--- trunk/packages/invirt-base/debian/changelog	(revision 2976)
+++ trunk/packages/invirt-base/debian/changelog	(revision 2977)
@@ -1,2 +1,8 @@
+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
 
Index: trunk/packages/invirt-base/files/lib/init/gen-files.sh
===================================================================
--- trunk/packages/invirt-base/files/lib/init/gen-files.sh	(revision 2976)
+++ trunk/packages/invirt-base/files/lib/init/gen-files.sh	(revision 2977)
@@ -7,5 +7,5 @@
   {
     for f in "${GEN_FILES[@]}"; do
-      mako-render "$f".mako >"$f"
+      invirt-mako-render "$f".mako >"$f"
     done
   }
@@ -13,5 +13,5 @@
   gen_files()
   {
-    mako-render "$GEN_FILES".mako >"$GEN_FILES"
+     invirt-mako-render "$GEN_FILES".mako >"$GEN_FILES"
   }
 fi
Index: trunk/packages/invirt-base/scripts/invirt-mako-render
===================================================================
--- trunk/packages/invirt-base/scripts/invirt-mako-render	(revision 2977)
+++ trunk/packages/invirt-base/scripts/invirt-mako-render	(revision 2977)
@@ -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()
