diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-12-28 10:53:46 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-12-28 10:53:46 -0500 |
commit | afbfaf92af7a8a59ae2e5aeda97561aba6d4f30b (patch) | |
tree | 5838ded489df419c442e4e34d2055cfbfa6276aa | |
parent | 05c2502e157a961df2ba90ab87bfe11e0a96ed40 (diff) | |
download | mako-afbfaf92af7a8a59ae2e5aeda97561aba6d4f30b.tar.gz |
- Added "--var name=value" option to the mako-render
script, allows passing of kw to the template from
the command line. [ticket:178]
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | scripts/mako-render | 14 |
2 files changed, 15 insertions, 3 deletions
@@ -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() |