diff --git a/node/nvm.zsh b/node/nvm.zsh index 6f666d2..cc187b4 100644 --- a/node/nvm.zsh +++ b/node/nvm.zsh @@ -2,3 +2,31 @@ export NVM_COMPLETION=true source ~/.zsh-plugins/zsh-nvm/zsh-nvm.plugin.zsh + +# Call nvm use automatically whenever a directory containing .nvmrc is entered. +autoload -U add-zsh-hook + +function load-nvmrc() +{ + local nvmrc_path + nvmrc_path="$(nvm_find_nvmrc)" + + if [[ -n "$nvmrc_path" ]]; then + local nvmrc_node_version + nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") + + if [[ "$nvmrc_node_version" == "N/A" ]]; then + nvm install + elif [[ "$nvmrc_node_version" != "$(nvm version)" ]]; then + nvm use + fi + + elif [[ -n "$(PWD=$OLDPWD nvm_find_nvmrc)" ]] \ + && [[ "$(nvm version)" != "$(nvm version default)" ]]; then + echo "Reverting to nvm default version" + nvm use default + fi +} + +add-zsh-hook chpwd load-nvmrc +load-nvmrc