summaryrefslogtreecommitdiff
path: root/plugins/direnv/direnv.plugin.zsh
blob: 5e32c4c23f3778dcfb759ab2aa03b51b03cdfbdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Don't continue if direnv is not found
command -v direnv &>/dev/null || return

_direnv_hook() {
  trap -- '' SIGINT;
  eval "$(direnv export zsh)";
  trap - SIGINT;
}
typeset -ag precmd_functions;
if [[ -z ${precmd_functions[(r)_direnv_hook]} ]]; then
  precmd_functions=( _direnv_hook ${precmd_functions[@]} )
fi
typeset -ag chpwd_functions;
if [[ -z ${chpwd_functions[(r)_direnv_hook]} ]]; then
  chpwd_functions=( _direnv_hook ${chpwd_functions[@]} )
fi