Mustache + YAML based config templater.
Project description
whizkers
Mustache + YAML based config templater.
Installation
pip install whizkers
or just move whizkers.py to somewhere in your $PATH.
Dependencies
Python (2 or 3)
The below are Python libraries that should be installed via pip. Alternatively, if you did pip install whizkers, these should have been automatically installed.
argcomplete
colorlog
pystache
PyYAML
termcolor
watchdog
Autocomplete
sudo activate-global-python-argcomplete
If you installed via pip, you may need to run the following before autocompletion works:
grep 'PYTHON_ARGCOMPLETE_OK' "$(which whizkers)" &>/dev/null || sudo sed -i "1a # PYTHON_ARGCOMPLETE_OK" "$(which whizkers)"
Usage
usage: whizkers [-h] [-l] [-t TEMPLATE_DIR] [-d DEST_DIR] [-s VAR_SET_DIR] [-i IGNORES_FILE] [-e] [-w] [--watch-command WATCH_COMMAND] [--diff] [--dry] [variable_files [variable_files ...]] A pystache + YAML based config templater. Searches for an optional yaml file with a variable mapping in ~/.config/whizkers/variables.yaml, an optional yaml file with an ignore scalar of regexes in (by default) ~/.config/whizkers/ignores.yaml, and uses the mustache templates in (by default) ~/.config/whizkers/templates/ to render into your home directory (by default). Additional variable files can be applied by supplying them as arguments, in order of application. They can either be paths or, if located in (by default) ~/.config/whizkers/variable_sets/, extension-less filenames. Environment variable support is available; simply put the name of the variable in mustache brackets. Order of precedence is: last YAML variable defined > first YAML variable defined > environment variables. Variables are shallowly resolved once, then anything in {`...`} is eval'd in Python. Autocomplete support available, but only for the default variable set directory. A file watcher is available via the -w flag. Whenever a variable file in use, the ignores file, or a template file changes, the templates are rendered if there are any differences. Diffs between the current destination files and template renderings are available via the --diff flag. positional arguments: variable_files additional variable files optional arguments: -h, --help show this help message and exit -l list variable sets. -t TEMPLATE_DIR template directory. Default: /home/echan/.config/whizkers/templates -d DEST_DIR destination directory. Default: /home/echan -s VAR_SET_DIR variable set directory. Default: /home/echan/.config/whizkers/variable_sets -i IGNORES_FILE ignores file. Default: /home/echan/.config/whizkers/ignores.yaml -e whether or not to use environment variables. Default: don't use environment variables -w start file watcher. --watch-command WATCH_COMMAND what to execute when a change occurs. Default: Nothing --diff show diff between template renderings and current destination files --dry do a dry run
Thanks to
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
whizkers-1.1.0.tar.gz
(8.5 kB
view details)
Built Distribution
File details
Details for the file whizkers-1.1.0.tar.gz
.
File metadata
- Download URL: whizkers-1.1.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8c145956aea3be146f36311e64efdca9485de93f0cd32129ab21387b16204d5e |
|
MD5 | b43cea0f5011cf515eb4bca45b8e53a6 |
|
BLAKE2b-256 | 32f7f34731bc052a2b8ac3e6aac1815116f0dc0942121aa863aab24c8e544852 |
File details
Details for the file whizkers-1.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: whizkers-1.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 015e73888b10f2d7fc6b8bcad1b8469b87e44bf6866fb3c915464af12868ce11 |
|
MD5 | 0d47e02d302e17b38017a5f4d6d4dfdf |
|
BLAKE2b-256 | 7aaab51c7a6a21d03675a6f5a0e302338b069d509a9adf1157f138cf7d5ef1cf |