Documentation • Installation • Configuration • Contributing • Show Your Support
Substitute Variables (subvars) is a small utility which provides a way to render any Go templates from command line recognizing the object being passed in and drawing attributes from the object to create wanted text. It is very useful for template driven configuration files.
It uses sprig v3 for template functions which provides additional functions apart from standard library.
subvars
reads input from stdin
and renders output to stdout
.
You can pipe the input or <
direct it to subvars.
Options to render all files in a given folder
and output to another folder preserving folder and file structure is available via dir
subcommand.
brew install kha7iq/tap/subvars
- AUR
yay -S subvars
- Binary
export SUBVARS_VERSION="0.1.5"
wget -q https://github.com/kha7iq/subvars/releases/download/v${SUBVARS_VERSION}/subvars_Linux_x86_64.tar.gz && \
tar -xf subvars_Linux_x86_64.tar.gz && \
chmod +x subvars && \
sudo mv subvars /usr/local/bin/subvars
scoop bucket add subvars https://github.com/kha7iq/scoop-bucket.git
scoop install subvars
Alternatively you can head over to release pages and download the binary for windows & all other supported platforms.
Docker container is available you can pull the latest
version or provide specific tag
Checkout release page for available versions.
Running Container
docker pull khaliq/subvars:latest
docker run -it --rm khaliq/subvars:latest --help
❯ subvars --help
NAME:
subvars - Substitute environment variables defined as go templates.
USAGE:
subvars [global options] command [command options] [arguments...]
VERSION:
0.1.2
COMMANDS:
dir, d Directory lets you render all files in a folder & subfolder.
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--prefix value, --pr value Match only variables with given prefix pattern [$SUBVARS_PREFIX]
--missingkey value, -m value Behavior for missing key when parsing variables. Available options 'invalid', 'error' or 'zero' (default: "invalid") [$SUBVARS_MISSINGKEY]
--help, -h show help (default: false)
--version, -v print the version (default: false)
echo "Hey! {{ .USER | upper }} your home folder is {{ .HOME }}" | subvars
subvars dir --input examples --out conf
Check Usage Documentation for detailed examples.
All the flags have corresponding environment variables associated with it. You can either provide the value with flags or export to a variable.
View the Configuration Page for more details.
Contributions, issues and feature requests are most welcome!
Feel free to check
issues page. You can also take a look
at the contributing guide.
Give a ⭐️ if you like this project!
Fork it ⚙️
Make it better 🕶️
This tool was inspired by the original python envtpl project and subfuzion