Skip to main content

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.

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.

Release history Release notifications | RSS feed

This release

0.3.0 This release

1 file

0.2.2

1 file

0.2.1

1 file

0.1.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page