Template
A CLI tool for generating files from Jinja2 templates and environment variables.
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
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
Output to filename
$ export name='John'
$ echo 'Hello {{ name if name is defined else 'world' }}. | template
Hello John.
$ echo '{{ USER }}' > username.j2
$ template --output username.txt username.j2
$ cat username.txt
John
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. -
to_toml
: Convert to toml. -
from_toml
: Convert from toml. -
jmespath
: Queries data using the JMESPath query language.
Example usage can be seen in tests
and for specific filters in the
docstrings in template/filters.py
.
Testing
Tests require Python 2.7, Python 3.3 or later, Tox and Bats and are run by
running tox
. Also, Travis CI is used to test on multiple Python
versions for every push.
Release
Releases require Python 2.7 or Python 3.3 or later and Tox. To release a new
version bump the version in the VERSION
file and run tox -e
release
.
License
This software is licensed under the AGPL 3+ license (see the LICENSE.txt
file).
Author
Nimrod Adar, contact me or visit my website. Patches are welcome via git send-email. The repository is located at: https://www.shore.co.il/git/.
TODO
- Release on tagged commits to PyPI in Travis CI (https://docs.travis-ci.com/user/deployment/pypi/ and https://docs.travis-ci.com/user/encryption-keys/).