diff --git a/CHANGES b/CHANGES index 23a9600c13ead4c5c49e45b6d4bb0b9bfc963f3e..5d3f2491536462c4229f9cf09a5119ae90ab1abe 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 0000000000000000000000000000000000000000..1ea27907aa9af65339f98a5e617e9c87ff589bae --- /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 f61a6aefb0af933b112bc9e139ec82351c0fcad7..76668671494c1dbad717c6522fba08db43c1eaef 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',