# mako/cmd.py # Copyright 2006-2019 the Mako authors and contributors <see AUTHORS file> # # This module is part of Mako and is released under # the MIT License: http://www.opensource.org/licenses/mit-license.php from argparse import ArgumentParser from os.path import dirname from os.path import isfile import sys from mako import exceptions from mako.lookup import TemplateLookup from mako.template import Template def varsplit(var): if "=" not in var: return (var, "") return var.split("=", 1) def _exit(): sys.stderr.write(exceptions.text_error_template().render()) sys.exit(1) def cmdline(argv=None): parser = ArgumentParser() parser.add_argument( "--var", default=[], action="append", help="variable (can be used multiple times, use name=value)", ) parser.add_argument( "--template-dir", default=[], action="append", help="Directory to use for template lookup (multiple " "directories may be provided). If not given then if the " "template is read from stdin, the value defaults to be " "the current directory, otherwise it defaults to be the " "parent directory of the file provided.", ) parser.add_argument( "--output-encoding", default=None, help="force output encoding" ) parser.add_argument("input", nargs="?", default="-") options = parser.parse_args(argv) output_encoding = options.output_encoding if options.input == "-": lookup_dirs = options.template_dir or ["."] lookup = TemplateLookup(lookup_dirs) try: template = Template( sys.stdin.read(), lookup=lookup, output_encoding=output_encoding, ) except: _exit() else: filename = options.input if not isfile(filename): raise SystemExit("error: can't find %s" % filename) lookup_dirs = options.template_dir or [dirname(filename)] lookup = TemplateLookup(lookup_dirs) try: template = Template( filename=filename, lookup=lookup, output_encoding=output_encoding, ) except: _exit() kw = dict([varsplit(var) for var in options.var]) try: sys.stdout.write(template.render(**kw)) except: _exit() if __name__ == "__main__": cmdline()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
ext | Folder | 0755 |
|
|
__init__.py | File | 242 B | 0644 |
|
_ast_util.py | File | 19.94 KB | 0644 |
|
ast.py | File | 6.63 KB | 0644 |
|
cache.py | File | 7.55 KB | 0644 |
|
cmd.py | File | 2.41 KB | 0644 |
|
codegen.py | File | 46.77 KB | 0644 |
|
compat.py | File | 3.76 KB | 0644 |
|
exceptions.py | File | 12.85 KB | 0644 |
|
filters.py | File | 5.92 KB | 0644 |
|
lexer.py | File | 16.7 KB | 0644 |
|
lookup.py | File | 12.42 KB | 0644 |
|
parsetree.py | File | 18.96 KB | 0644 |
|
pygen.py | File | 9.84 KB | 0644 |
|
pyparser.py | File | 7.61 KB | 0644 |
|
runtime.py | File | 27.38 KB | 0644 |
|
template.py | File | 25.91 KB | 0644 |
|
util.py | File | 10.76 KB | 0644 |
|