dotfiles/node/nvm.zsh
Marley Rae d85ad95bc9 Automatically use .nvmrc
Add function to automatically install if applicable, and use the version
of Node.js specified by the .nvmrc, when entering directories with one
available.
2024-01-23 20:58:32 -08:00

32 lines
787 B
Bash

#!/usr/bin/env zsh
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