Skip to main content

A comprehensive command line utility to render templates and ease code generation.

Project description

Shadow

https://img.shields.io/pypi/v/shadow-cli.svg https://img.shields.io/travis/karma0/shadow.svg Documentation Status Updates

A comprehensive command line utility to render templates and ease code generation.

https://github.com/karma0/shadow/raw/master/shadow-devil.gif

Features

  • Incorporates a convention over configuration mentality.

  • Use the default *.tpl extension to find and render templates, or specify your own.

  • Use the template extension on a directory to render all files under it.

  • Specify the path(s) or let it default to searching for templates in the current working directory.

  • Use template variables in filenames to render scalar filename outputs.

  • Use hash/dict or list/array types in filenames to render multiple files.

  • Default configuration expects a file named shadowconf with any of the following extensions: .json, .hcl, .env, .yml, .ini.

  • If no configuration file is specified, it will load and use the shell environment to render variables.

  • All defaults can be overriden.

Quick Install

Install from PyPi:

pip install shadow-cli

Install from GitHub:

git clone https://github.com/karma0/shadow
cd shadow
pip install -U .

Examples

Display the help and exit:

shadow --help

Discover templates to be generated:

shadow sim

Find all templates in the current working directory and generate them using the config file shadowconf.json as the variables to build them:

shadow fax

Find all generated templates and remove them:

shadow clean

Generate templates in the tests directory on files ending in *.j2, using environment variables to fill and render the templates:

shadow fax -e -t .j2 tests

Generate the single template file named test.txt using the HCL config file test.txt.hcl:

shadow fax -c test.txt.hcl test.txt.tpl

Credits

Created and maintained by karma0.

This package was created with Cookiecutter and the karma0/cookiecutter-pypackage project template.

History

0.3.0 (2019-02-06)

  • Added config passthrough from CLI.

  • Fixed yield bug in rendering of filenames.

  • Added some preliminary tests.

  • Fixed logging.

  • Added always fallback to loading the environment if no config file is present.

  • Added checks for shadowconf file using extensions: json, ini, env, etc.

0.2.2 (2019-01-31)

  • Documentation fixes.

0.2.1 (2019-01-31)

  • Version bump; getting everything working.

0.2.0 (2019-01-31)

  • First release on PyPI.

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

shadow-cli-0.3.0.tar.gz (21.2 kB view details)

Uploaded Source

File details

Details for the file shadow-cli-0.3.0.tar.gz.

File metadata

  • Download URL: shadow-cli-0.3.0.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for shadow-cli-0.3.0.tar.gz
Algorithm Hash digest
SHA256 961813ed2bc3903c85d83b9c6a476549fae19a027e88adbe8d5455e8c146a817
MD5 d75b5600395dde9706292053753d9183
BLAKE2b-256 51ffd7f1b7c12e0729f820db54b3e81f7ade3c9161454f2c3704d4f073059357

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