Make `nvm ls` support listing the "versions" directory when it's present.
diff --git a/nvm.sh b/nvm.sh
index f5216b1..9e13892 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -229,8 +229,13 @@
if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*$"` != 0 ]; then
PATTERN="$PATTERN."
fi
- VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \
- | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'`
+ if [ -d "$(nvm_version_dir new)" ]; then
+ VERSIONS=`find "$(nvm_version_dir new)/" "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \
+ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'`
+ else
+ VERSIONS=`find "$(nvm_version_dir old)/" -maxdepth 1 -type d -name "$PATTERN*" -exec basename '{}' ';' \
+ | sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n | \grep -v '^ *\.' | \grep -e '^v'`
+ fi
fi
if [ -z "$VERSIONS" ]; then
echo "N/A"
diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory"
new file mode 100755
index 0000000..eb8f2ba
--- /dev/null
+++ "b/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory"
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+die () { echo $@ ; exit 1; }
+
+mkdir -p ../../../versions/v0.12.1
+mkdir ../../../v0.1.3
+
+. ../../../nvm.sh
+
+nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory'
+nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory'
+
diff --git a/test/fast/Listing versions/teardown b/test/fast/Listing versions/teardown
index 191d12b..a8fc501 100644
--- a/test/fast/Listing versions/teardown
+++ b/test/fast/Listing versions/teardown
@@ -7,5 +7,6 @@
rmdir ../../../v0.3.1
rmdir ../../../v0.3.3
rmdir ../../../v0.3.9
+rmdir ../../../versions
unalias nvm_has_system_node