zsh/plugins/nvm/nvm.plugin.zsh
2026-08-11 10:44:32 +02:00

64 lines
1.4 KiB
Bash

typeset -a chpwd_functions __chromaz_extra_left
# fnm
FNM_PATH="${XDG_DATA_HOME:-$HOME/.local/share}/fnm"
_setup-fnm() {
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
}
if [ -d "$FNM_PATH" ]; then
_setup-fnm
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
install-fnm() {
mkdir -p "$FNM_PATH" &>/dev/null
if ! curl -L https://github.com/Schniz/fnm/releases/latest/download/fnm-linux.zip | funzip > $FNM_PATH/fnm ; then
echo "Download failed. Check that the release/filename are correct."
return 1
fi
chmod u+x "$FNM_PATH/fnm"
_setup-fnm
}
fi