nickstenning / honcho

Honcho: a python clone of Foreman. For managing Procfile-based applications.
http://pypi.python.org/pypi/honcho
MIT License
1.59k stars 145 forks source link

Prevent existing environment variables from being overriden? #233

Open evandam opened 2 years ago

evandam commented 2 years ago

Hey @nickstenning thanks for this project!

I was wondering if there's a way to prevent a .env file from overwriting an existing env var. Consider the following example:

$ cat .env
FOO="using FOO from .env"

$ FOO="Using FOO from shell" honcho run -e .env env | grep FOO
FOO=Using .env.local

Ideally, if FOO is already set, I don't think a .env file should overwrite it, like if the environment variable gets set at runtime in a docker-compose.yml, k8s, or whatever orchestrator may be setting them.

Similarly this would be helpful when passing multiple .env files for different environments for example:

❯ honcho run -e .env.local,.env.dev,.env env | grep FOO
FOO=Using .env

It seems that right now the last file parsed will always take over an environment variable previously set, but it would be nice if it didn't override them.