| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/env python
- def render(data, filename, kw):
- from mako.template import Template
- from mako.lookup import TemplateLookup
- lookup = TemplateLookup(["."])
- return Template(data, filename, 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
- from sys import stdin
- if argv is None:
- import sys
- argv = sys.argv
- 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):
- 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)
- kw = dict([varsplit(var) for var in opts.var])
- data = fo.read()
- print(render(data, filename, kw))
- if __name__ == "__main__":
- main()
|