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/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.

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

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

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 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

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.

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