1234567891011121314151617181920212223242526272829303132333435 |
- source_env() {
- if [[ -f $ZSH_DOTENV_FILE ]]; then
- if [ "$ZSH_DOTENV_PROMPT" != "false" ]; then
- # confirm before sourcing file
- local confirmation
- # print same-line prompt and output newline character if necessary
- echo -n "dotenv: source '$ZSH_DOTENV_FILE' file in the directory? (Y/n) "
- read -k 1 confirmation; [[ "$confirmation" != $'\n' ]] && echo
- # only bail out if confirmation character is n
- if [[ "$confirmation" = [nN] ]]; then
- return
- fi
- fi
- # 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
|