From a0e9c157bb47b0c72ea32a520db4cecb102230ce Mon Sep 17 00:00:00 2001 From: Jacob Williams Date: Wed, 14 Oct 2015 01:01:41 -0500 Subject: [PATCH] set NVM_DIR to real path to avoid symlink issues --- nvm.sh | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/nvm.sh b/nvm.sh index 5aba5d463d..3f759a3022 100755 --- a/nvm.sh +++ b/nvm.sh @@ -461,6 +461,29 @@ else fi unset NVM_SCRIPT_SOURCE 2>/dev/null +# Convert NVM_DIR to actual path if symlinked +export NVM_DIR=$(nvm_real_dir "${NVM_DIR}") + +nvm_real_dir() { + local NVM_DIR_INPUT + NVM_DIR_INPUT="${1}" + + if [ -z "${NVM_DIR_INPUT}" ]; then + nvm_err '$NVM_DIR cannot be empty' + return 2 + fi + + local NVM_REAL_DIR + NVM_REAL_DIR=$(command cd "${NVM_DIR_INPUT}" && command pwd -P) + + if [ -z "${NVM_REAL_DIR}" ] || [ ! -d "${NVM_REAL_DIR}" ]; then + nvm_err "NVM_DIR is not a valid path" + return 2 + fi + + nvm_echo "${NVM_REAL_DIR}" +} + nvm_tree_contains_path() { local tree tree="${1-}"