zsh/plugins/nvm/nvm.plugin.zsh
2025-11-24 11:15:24 +01:00

51 lines
1.1 KiB
Bash

typeset -a chpwd_functions __chromaz_extra_left
# fnm
FNM_PATH="${XDG_DATA_HOME:-$HOME/.local/share}/fnm"
if [ -d "$FNM_PATH" ]; then
export PATH="$FNM_PATH:$PATH"
eval "$(fnm env --use-on-cd --version-file-strategy recursive)"
FNM_DEFAULT=${$(readlink $FNM_PATH/aliases/default):h:t}
_prompt_fnm_version() {
local node_version=$(fnm current)
[[ $node_version == $FNM_DEFAULT ]] && return
echo "nodejs: ${node_version}"
}
__chromaz_extra_left+=_prompt_fnm_version
elif [ -d "$HOME/.nvm" ]; then
export NVM_DIR="$HOME/.nvm"
nvm() {
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm "$@"
}
find-nvmrc-version() {
local dir=${1:-${PWD:a}}
if [[ $dir == / ]]; then return 1; fi
if [[ -e $dir/.nvmrc ]]; then
< $dir/.nvmrc
else
find-nvmrc-version ${dir:h}
fi
}
chpwd-set-nvm() {
if vers=$(find-nvmrc-version); then
if [[ $vers != ${NVM_BIN:h:t} ]]; then
nvm use
fi
fi
}
chpwd-set-nvm &>/dev/null
chpwd_functions+=chpwd-set-nvm
_prompt_nvm_version() {
[[ -z $NVM_BIN ]] && return
echo "nodejs: ${NVM_BIN:h:t}"
}
__chromaz_extra_left+=_prompt_nvm_version
else
return
fi