Skip to main content

Render parameterized Jinja2 template files

Project description

inji

Render static jinja2 template files, optionally specifying parameters contained in vars files.

Useful in CI/CD scenarios to keep configuration DRY across environments.

Installation

NOTE: Support for Python2 is now dropped. Python3 is required.

pip install inji

Usage

Render a lone Jinja2 template.
inji --template=jello-world.j2
Render a template passing vars from a YAML file.
inji --template=motd.j2 --vars-file=production.yaml

vars files must contain valid YAML documents and can hold either simple scalars or collections. Your jinja templates must reference these accordingly.

e.g.

$ cat vars.yaml
sage: victor
section: indigo

envoy:
  names:
    - alice
    - bob
    - chuck
  location: metaverse
  origin: world's end
$ cat hello-world.j2
Hello {{ envoy.names | join(', ') }}!!

I am {{ sage }}, the {{ section }} sage.

It seems you are at {{ envoy.location }} today and come from {{ envoy.origin }}.
$ inji -t hello-world.j2 -v vars.yaml
Hello alice, bob, chuck!!

I am victor, the indigo sage.

It seems you are at metaverse today and come from world's end.
Render a template using variables from multiple vars files
inji --template=nginx.conf.j2    \
      --vars-file=web-tier.yaml  \
      --vars-file=eu-west-1.yaml \
      --vars-file=prod.yaml  > /etc/nginx/sites-enabled/prod-eu-west-1.conf

This is especially useful in managing layered configuration. i.e. variables from files specified later on the command-line will be overlain over those defined earlier.

Etymology

inji is named in keeping of the UNIX tradition of short (memorable?) command names.

inji (/ɪndʒi:/) also happens to be the Tamil word for Ginger. In this case, it is a near-anagram of Jinja which ostensibly is a homophone of Ginger (Zingiber).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inji-0.2.1.post2.tar.gz (5.2 kB view details)

Uploaded Source

Built Distributions

inji-0.2.1.post2-py3.8.egg (4.8 kB view details)

Uploaded Source

inji-0.2.1.post2-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file inji-0.2.1.post2.tar.gz.

File metadata

  • Download URL: inji-0.2.1.post2.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for inji-0.2.1.post2.tar.gz
Algorithm Hash digest
SHA256 fc892e84f0a238e7374470148575fb74b6c2c4f1613e07757711b6d4237a62ac
MD5 56413cd386c41881ff1c3c5b4c679eb0
BLAKE2b-256 7fc11f99c6c7273e0937a0bc704ae7f6487005315920c75a7a1c995e6585d129

See more details on using hashes here.

File details

Details for the file inji-0.2.1.post2-py3.8.egg.

File metadata

  • Download URL: inji-0.2.1.post2-py3.8.egg
  • Upload date:
  • Size: 4.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for inji-0.2.1.post2-py3.8.egg
Algorithm Hash digest
SHA256 e839e2d59927cfc8b889e88e6f3eba16698528dc6f2ed1986c7abbc10f8e4461
MD5 11000ddeabd39a57750acbbdd2d22da4
BLAKE2b-256 5a9c6042ed91596817f47a13deb61a974ed2f805f763dc1203e844371000d700

See more details on using hashes here.

File details

Details for the file inji-0.2.1.post2-py3-none-any.whl.

File metadata

  • Download URL: inji-0.2.1.post2-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.1.0 requests-toolbelt/0.9.1 tqdm/4.47.0 CPython/3.8.3

File hashes

Hashes for inji-0.2.1.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 cebcf83b95e39dc7186e7a6247c212248bb341421f3c04afad0c45b0e2d7fa91
MD5 bf7345a4477a241e4358a3cbaf11b41d
BLAKE2b-256 1641a2460ec15a06c787f54a09b686592e7fbc0bafb354d16559e46bb3c2fcd7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page