[Refactor] nvm version: improve performance

Fixes #1694
This commit is contained in:
Maksim Ryzhikov 2017-12-23 18:39:22 +03:00 committed by Jordan Harband
parent 7b530edd3a
commit 3de459c32e
No known key found for this signature in database
GPG Key ID: 9F6A681E35EF8B56

18
nvm.sh
View File

@ -338,16 +338,7 @@ nvm_tree_contains_path() {
return 2 return 2
fi fi
local previous_pathdir [ "$tree${node_path#$tree}" = "${node_path}" ]
previous_pathdir="${node_path}"
local pathdir
pathdir=$(dirname "${previous_pathdir}")
while [ "${pathdir}" != '' ] && [ "${pathdir}" != '.' ] && [ "${pathdir}" != '/' ] &&
[ "${pathdir}" != "${tree}" ] && [ "${pathdir}" != "${previous_pathdir}" ]; do
previous_pathdir="${pathdir}"
pathdir=$(dirname "${previous_pathdir}")
done
[ "${pathdir}" = "${tree}" ]
} }
nvm_find_project_dir() { nvm_find_project_dir() {
@ -1043,12 +1034,9 @@ nvm_ls_current() {
nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)"
elif nvm_tree_contains_path "${NVM_DIR}" "${NVM_LS_CURRENT_NODE_PATH}"; then elif nvm_tree_contains_path "${NVM_DIR}" "${NVM_LS_CURRENT_NODE_PATH}"; then
local VERSION local VERSION
VERSION="$(node --version 2>/dev/null)" local VERSION_SUFFIX=${NVM_LS_CURRENT_NODE_PATH#$NVM_DIR/versions/node/}
if [ "${VERSION}" = "v0.6.21-pre" ]; then VERSION=${VERSION_SUFFIX%/bin/node}
nvm_echo 'v0.6.21'
else
nvm_echo "${VERSION}" nvm_echo "${VERSION}"
fi
else else
nvm_echo 'system' nvm_echo 'system'
fi fi