From afbfaf92af7a8a59ae2e5aeda97561aba6d4f30b Mon Sep 17 00:00:00 2001 From: Mike Bayer <mike_mp@zzzcomputing.com> Date: Wed, 28 Dec 2011 10:53:46 -0500 Subject: [PATCH] - Added "--var name=value" option to the mako-render script, allows passing of kw to the template from the command line. [ticket:178] --- CHANGES | 4 ++++ scripts/mako-render | 14 +++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 0532565..07c9ff4 100644 --- a/CHANGES +++ b/CHANGES @@ -24,6 +24,10 @@ now as cache_args={'url':<some url>, 'type':'memcached', 'timeout':50, 'dir':'/path/to/some/directory'} +- Added "--var name=value" option to the mako-render + script, allows passing of kw to the template from + the command line. [ticket:178] + 0.5 - A Template is explicitly disallowed from having a url that normalizes to relative outside diff --git a/scripts/mako-render b/scripts/mako-render index 1ea2790..d4b54ea 100644 --- a/scripts/mako-render +++ b/scripts/mako-render @@ -1,11 +1,16 @@ #!/usr/bin/env python -def render(data): +def render(data, kw): from mako.template import Template from mako.lookup import TemplateLookup lookup = TemplateLookup(["."]) - return Template(data, lookup=lookup).render() + return Template(data, lookup=lookup).render(**kw) + +def varsplit(var): + if "=" not in var: + return (var, "") + return var.split("=", 1) def main(argv=None): from os.path import isfile @@ -18,6 +23,8 @@ def main(argv=None): from optparse import OptionParser parser = OptionParser("usage: %prog [FILENAME]") + parser.add_option("--var", default=[], action="append", + help="variable (can be used multiple times, use name=value)") opts, args = parser.parse_args(argv[1:]) if len(args) not in (0, 1): @@ -31,8 +38,9 @@ def main(argv=None): raise SystemExit("error: can't find %s" % filename) fo = open(filename) + kw = dict([varsplit(var) for var in opts.var]) data = fo.read() - print render(data) + print render(data, kw) if __name__ == "__main__": main() -- GitLab