51 lines
1.1 KiB
Bash
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
|
|
|