3 ms·
You're not wrong, but there's a small detail that your shell function doesn't solve for: unloading the environment variable once it's no longer needed. If you
by gwynforthewyn 2mo ago
You're not wrong, but there's a small detail that your shell function doesn't solve for: unloading the environment variable once it's no longer needed.
If you maintain one shell per process-that-needs-a-secret-in-the-env then it doesn't matter, but if you're using long-running shells then direnv can load and unload env vars. It also gives you a nice little heads-up that it loaded/unloaded variables.
- drdexebtjl 2mo agoUse this wrapper instead: #!/bin/sh set -a . ./.env exec "$@"
- jolmg 2mo agoor just `exec $SHELL` to unload.
- gwynforthewyn 2mo agoSort of? It definitely does what's needed, but it also removes any additional environment variables that were set, unless they're in your shell initialisation files. I'm not trying to persuade that these tools are essential or anything, just highlighting that there's a few small details some take care of that're fairly nice.