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.tar.gz (5.2 kB view details)

Uploaded Source

Built Distributions

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

Uploaded Source

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: inji-0.2.1.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.tar.gz
Algorithm Hash digest
SHA256 11a75c37f7967f7cf33b2862afebacc90f3abf0adb081d43bcbae53f4c58388a
MD5 c7f4b9b02bdb189037fcc127731bc11e
BLAKE2b-256 903b39e12d4bd33aab43cb0b12c860810d9fc09461573e811ebb726761de4daf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: inji-0.2.1-py3.8.egg
  • Upload date:
  • Size: 4.7 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-py3.8.egg
Algorithm Hash digest
SHA256 d0a3297d133ef04c04ad4d279df1d1603ccc21e9f6e35b9ed0cdccc4c471a683
MD5 cdc7129ff36ba2b543aeb40e12bf81e7
BLAKE2b-256 54844f68f573c7774bbf0de9f5699b79d3474abc11bb76d481da43adb5ba27b3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: inji-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.9 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-py3-none-any.whl
Algorithm Hash digest
SHA256 7c53f78a6fb3b2a076fe58dd76bedbd679c47244560a447886ae68478443a7ec
MD5 59e749f9f8ff8ba0d895c061696e736d
BLAKE2b-256 14ef3760a38a72c41ccd01544698dddbdf34abcb3777bb1485a218b6533ee3af

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