summaryrefslogtreecommitdiff
path: root/plugins/direnv/direnv.plugin.zsh
blob: 6f8debb62d50d160588e76c6c117fb8029ddf8d7 (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 hook 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