Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



Use this wrapper instead:

   #!/bin/sh
   set -a
   . ./.env
   exec "$@"


or just `exec $SHELL` to unload.


Sort 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.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: