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