From 3de459c32e738da5cc5db1c57c52e78bcdf25976 Mon Sep 17 00:00:00 2001 From: Maksim Ryzhikov Date: Sat, 23 Dec 2017 18:39:22 +0300 Subject: [PATCH] [Refactor] `nvm version`: improve performance Fixes #1694 --- nvm.sh | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/nvm.sh b/nvm.sh index 87f4961..1aea6f7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -338,16 +338,7 @@ nvm_tree_contains_path() { return 2 fi - local previous_pathdir - 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}" ] + [ "$tree${node_path#$tree}" = "${node_path}" ] } nvm_find_project_dir() { @@ -1043,12 +1034,9 @@ nvm_ls_current() { nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" elif nvm_tree_contains_path "${NVM_DIR}" "${NVM_LS_CURRENT_NODE_PATH}"; then local VERSION - VERSION="$(node --version 2>/dev/null)" - if [ "${VERSION}" = "v0.6.21-pre" ]; then - nvm_echo 'v0.6.21' - else - nvm_echo "${VERSION}" - fi + local VERSION_SUFFIX=${NVM_LS_CURRENT_NODE_PATH#$NVM_DIR/versions/node/} + VERSION=${VERSION_SUFFIX%/bin/node} + nvm_echo "${VERSION}" else nvm_echo 'system' fi