Skip to main content

Shadow

https://img.shields.io/pypi/v/shadowgen.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 shadowgen

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.2 (2019-04-01)

  • Updated installation documentation.

0.3.1 (2019-04-01)

  • Renamed PyPi project to shadowgen.

  • Dependency upgrades.

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

shadowgen-0.3.2.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shadowgen-0.3.2-py2.py3-none-any.whl (9.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file shadowgen-0.3.2.tar.gz.

File metadata

  • Download URL: shadowgen-0.3.2.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for shadowgen-0.3.2.tar.gz
Algorithm Hash digest
SHA256 efafccf19e698ae9f52c98da788e981d7ad0b07728ab45165d74d31bee1d63e4
MD5 11f21564e3ffe726b09443eaa6fb53c3
BLAKE2b-256 eb3f23720da4a1ed2b52f3f07e52e8f830655e7b585677753a0c1aee63867c1f

See more details on using hashes here.

File details

Details for the file shadowgen-0.3.2-py2.py3-none-any.whl.

File metadata

  • Download URL: shadowgen-0.3.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for shadowgen-0.3.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ff27cab9d7c5b14b42bf706f8ddc78c0f5aa8101ef40a81af4c7bf605f8d3ca6
MD5 4f072205556f45199aa9f0a4b38af568
BLAKE2b-256 f085cba99cb58ca9f8f06a1e73097b4c1c7c4f333b2decca70fb0a890b86f7c9

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 files

0.3.1

2 files

Supported by

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