Expenv replaces ${var} or $var in the input to the values of the current environment variables. Supports stdin/stdout and files.
There is also a newer version available, expenv.sh, written as shell script.
$ go get github.com/blang/expenv
$ $GOPATH/bin/expenv -f inputfile
If you don't want to build it, you might want to download the ELF x86-64 binary of the latest release (build by travis-ci).
$ expenv -f inputfile > outputfile
$ expenv < inputfile > outputfile
$ expenv -i -f inputfile // Replace inplace
Example input:
My PWD is $PWD
Whoami: ${USER}
I'm using $TERM
Expand $empty but don't expand $$empty
Don't expand $(echo empty)
As mentioned in the above example, two special cases exist:
$$
is converted to$
, allowing you to pass in literal-dollar-signs$(
is not converted, allowing your input to contain subshell like behaviour
I need to make config files more dynamic using environment variables. In a docker environment this is a big issue for me.
Feel free to make a pull request. For bigger changes create a issue first to discuss about it.
See LICENSE file.