1
0
Fork 0
mirror of https://github.com/Luzifer/envrun.git synced 2024-11-08 22:30:02 +00:00
envrun/README.md

63 lines
1.9 KiB
Markdown
Raw Normal View History

2016-02-06 15:23:11 +00:00
# Luzifer / envrun
2016-02-06 15:25:20 +00:00
`envrun` is a small helper utility I wrote for myself to debug programs and scripts during their development expecting environment variables to be set to special values. Sure there is [gin](https://github.com/codegangsta/gin) for go webservers doing the same but I wanted something also for commandline utilities.
2016-02-06 15:23:11 +00:00
It reads a `.env` file (configurable) from the current directory and then either takes its own environment variables or a clean set and adds the env variables found in `.env` to it. The resulting set is passed to the command you put as arguments to `envrun`.
## Examples
To visualize the effect of the utility the test command is `python test.py` with this simple python script:
```python
import os
for k in os.environ.keys():
print "{} = {}".format(k, os.environ[k])
```
It just prints the current environment to `STDOUT` and exits.
```bash
# cat .env
MY_TEST_VAR=hello world
ANOTHER_VAR=foo
# python test.py | grep MY_TEST_VAR
## No output on this command
# envrun --help
Usage of envrun:
--clean[=false]: Do not pass current environment to child process
--env-file=".env": Location of the environment file
--q[=false]: Suppress informational messages from envrun
# envrun python test.py | grep MY_TEST_VAR
MY_TEST_VAR = hello world
# envrun python test.py | wc -l
45
# envrun --clean python test.py | wc -l
3
# envrun --clean python test.py
__CF_USER_TEXT_ENCODING = 0x1F5:0x0:0x0
ANOTHER_VAR = foo
MY_TEST_VAR = hello world
```
## Encrypted `.env`-file
In case you don't want to put the environment variables into a plain text file onto your disk you can use an AES256 encrypted file and provide a password to `envrun`:
```bash
# echo 'MYVAR=myvalue' | openssl enc -e -aes-256-cbc -pass pass:justatest -base64 -out .env
# cat .env
U2FsdGVkX18xcVIMejjwWzh1DppzptJCHhORH/JDj10=
# envrun -p justatest --clean -- env
MYVAR=myvalue
2017/03/21 16:34:57 Process exitted with code 0
```