From d128a8b15128ff5cc2a402bbaad9b41936d61ad5 Mon Sep 17 00:00:00 2001
From: Mike Bayer <mike_mp@zzzcomputing.com>
Date: Tue, 3 Jun 2008 19:04:10 +0000
Subject: [PATCH] - added a runner script "mako-render" which renders standard
 input as a template to stdout [ticket:81] [ticket:56]

---
 CHANGES             |  4 ++++
 scripts/mako-render | 38 ++++++++++++++++++++++++++++++++++++++
 setup.py            |  1 +
 3 files changed, 43 insertions(+)
 create mode 100644 scripts/mako-render

diff --git a/CHANGES b/CHANGES
index 23a9600..5d3f249 100644
--- a/CHANGES
+++ b/CHANGES
@@ -47,6 +47,10 @@
     _push_buffer(), _pop_buffer(),
     caller_stack._push_frame(), caller_stack._pop_frame().
 
+  - added a runner script "mako-render" which renders 
+    standard input as a template to stdout [ticket:81] 
+    [ticket:56]
+    
 - Bugfixes:
   - can now use most names from __builtins__ as variable
     names without explicit declaration (i.e. 'id', 
diff --git a/scripts/mako-render b/scripts/mako-render
new file mode 100644
index 0000000..1ea2790
--- /dev/null
+++ b/scripts/mako-render
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+
+def render(data):
+    from mako.template import Template
+    from mako.lookup import TemplateLookup
+
+    lookup = TemplateLookup(["."])
+    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()
diff --git a/setup.py b/setup.py
index f61a6ae..7666867 100644
--- a/setup.py
+++ b/setup.py
@@ -34,6 +34,7 @@ SVN version:
       license='MIT',
       package_dir={'':'lib'},
       packages=find_packages('lib', exclude=['ez_setup', 'examples', 'tests']),
+      scripts=['scripts/mako-render'],
       zip_safe=False,
       install_requires=[
           'Beaker',
-- 
GitLab