Skip to content
Snippets Groups Projects
Commit b62fddbc authored by nimrod's avatar nimrod
Browse files

- Updated documentation, tests.

parent a02c13ad
No related branches found
No related tags found
No related merge requests found
Template
########
A CLI tool for generating files from Jinja2 templates and environment variables.
A CLI tool for generating files from Jinja2 templates and environment
variables.
Examples
--------
......@@ -11,6 +12,9 @@ Examples
$ template -h
usage: template [-h] [-o OUTPUT] [filename]
A CLI tool for generating files from Jinja2 templates and environment
variables.
positional arguments:
filename Input filename
......@@ -23,7 +27,7 @@ Examples
Hello John.
$ echo '{{ USER }}' > username.j2
$ template --output username.txt username.j2
$ cat username
$ cat username.txt
John
......@@ -32,12 +36,12 @@ Jinja filters
The following Jinja filters were added:
- to_yaml: Convert to yaml.
- from_yaml: Convert from yaml.
- to_json: Convert to json.
- from_json: Convert from json.
- pprint: Pretty print variable.
- combine: Combine 2 dictionaries.
- :code:`to_yaml`: Convert to yaml.
- :code:`from_yaml`: Convert from yaml.
- :code:`to_json`: Convert to json.
- :code:`from_json`: Convert from json.
- :code:`pprint`: Pretty print variable.
- :code:`combine`: Combine 2 dictionaries.
Example usage can be seen in :code:`tests.sh`.
......
......@@ -21,7 +21,9 @@ def render(template_string):
def main():
parser = ArgumentParser()
parser = ArgumentParser(
description='''A CLI tool for generating files from Jinja2 templates
and environment variables.''')
parser.add_argument('filename',
help='Input filename',
type=argparse.FileType('r'),
......
......@@ -26,7 +26,7 @@ def pprint(value):
return pformat(value)
def combine(lefthand, righthand):
combined = lefthand.copy()
combined.update(righthand)
def combine(default, override):
combined = default.copy()
combined.update(override)
return combined
......@@ -36,5 +36,7 @@ echo '{{ [1, ] + [2, ] }}' > "$infile"
test "$(template $infile)" = "[1, 2]"
echo Testing combining dictionaries.
echo '{{ {"a": 1, "b": 2}|combine({"a": 11, "c": 33}) }}' > "$infile"
test "$(template $infile)" = "{'a': 11, 'c': 33, 'b': 2}"
rm "$infile" "$outfile"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment