diff options
Diffstat (limited to 'plugins/dotenv/dotenv.plugin.zsh')
-rw-r--r-- | plugins/dotenv/dotenv.plugin.zsh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/dotenv/dotenv.plugin.zsh b/plugins/dotenv/dotenv.plugin.zsh new file mode 100644 index 000000000..89763d0ee --- /dev/null +++ b/plugins/dotenv/dotenv.plugin.zsh @@ -0,0 +1,23 @@ +source_env() { + if [[ -f $ZSH_DOTENV_FILE ]]; then + # test .env syntax + zsh -fn $ZSH_DOTENV_FILE || echo "dotenv: error when sourcing '$ZSH_DOTENV_FILE' file" >&2 + + if [[ -o a ]]; then + source $ZSH_DOTENV_FILE + else + set -a + source $ZSH_DOTENV_FILE + set +a + fi + fi +} + +autoload -U add-zsh-hook +add-zsh-hook chpwd source_env + +if [[ -z $ZSH_DOTENV_FILE ]]; then + ZSH_DOTENV_FILE=.env +fi + +source_env |