summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-12-28 10:53:46 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2011-12-28 10:53:46 -0500
commitafbfaf92af7a8a59ae2e5aeda97561aba6d4f30b (patch)
tree5838ded489df419c442e4e34d2055cfbfa6276aa
parent05c2502e157a961df2ba90ab87bfe11e0a96ed40 (diff)
downloadmako-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--CHANGES4
-rw-r--r--scripts/mako-render14
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()