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