From 802f064178236b9da3a81400b0188620234073d2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 16 Jun 2014 22:59:56 -0700 Subject: [PATCH 1/3] Adding a failing test. --- ...0.2\" should display only 0.2.x versions." | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." index dda41ba..8889f09 100755 --- "a/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." +++ "b/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -2,11 +2,40 @@ mkdir ../../../v0.1.3 mkdir ../../../v0.2.3 +mkdir ../../../v0.20.3 . ../../../nvm.sh +die () { echo $@ ; exit 1; } + # The result should contain only the appropriate version numbers. -nvm ls 0.2 | grep v0.2.3 && -nvm ls 0.1 | grep -v v0.2.3 && -nvm ls 0.1 | grep v0.1.3 && -nvm ls v0.2 | grep v0.2.3 + +nvm ls 0.1 | grep 'v0.2.3' > /dev/null +if [ $? -eq 0 ]; then + echo '"nvm ls 0.1" contained v0.2.3' +fi + +nvm ls 0.1 | grep 'v0.20.3' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.1" contained v0.20.3' +fi + +nvm ls 0.1 | grep 'v0.1.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.1" did not contain v0.1.3' +fi + +nvm ls 0.2 | grep 'v0.2.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.2" did not contain v0.2.3' +fi + +nvm ls 0.2 | grep 'v0.20.3' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.2" contained v0.20.3' +fi + +nvm ls 0.2 | grep 'v0.2.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.2" did not contain v0.2.3' +fi From 4cfe62d3d1ded585598c246d2df45567c96037c9 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Wed, 9 Jul 2014 01:19:48 -0700 Subject: [PATCH 2/3] Fixing `nvm ls 0.x` to only include `0.x.*` instead of `0.x*.*` --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index a782441..78a37cf 100644 --- a/nvm.sh +++ b/nvm.sh @@ -158,7 +158,11 @@ nvm_ls() { VERSIONS="$PATTERN" fi else - VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$(nvm_format_version $PATTERN)*" -exec basename '{}' ';' \ + PATTERN=$(nvm_format_version $PATTERN) + if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*$"` != 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 '^ *\.'` fi if [ -z "$VERSIONS" ]; then From 83efa2288de111167ae92fe12a96bd912617a320 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 12 Jul 2014 08:58:20 -0700 Subject: [PATCH 3/3] Use [0-9] instead of [[:digit:]] per https://github.com/creationix/nvm/pull/466#discussion_r14853668 - it's simpler (and probably more portable). --- nvm.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 78a37cf..4509dc7 100644 --- a/nvm.sh +++ b/nvm.sh @@ -153,13 +153,13 @@ nvm_ls() { return fi # If it looks like an explicit version, don't do anything funny - if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then + if [ `expr "$PATTERN" : "v[0-9]*\.[0-9]*\.[0-9]*$"` != 0 ]; then if [ -d "$NVM_DIR/$PATTERN" ]; then VERSIONS="$PATTERN" fi else PATTERN=$(nvm_format_version $PATTERN) - if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then + 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 '{}' ';' \