From 2a513a1bc07d76ed30cde463b3c8b1aa920d4767 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 23 Feb 2019 15:02:31 -0800 Subject: [PATCH] [Fix] `nvm_ls`: Reverts #1462 to fix io.js sorting.
Before this revert: ```sh iojs-v3.3.1 iojs-v2.5.0 v0.6.21 v0.7.12 iojs-v1.8.4 v0.8.28 v0.9.12 v0.10.48 v0.11.16 v0.12.9 v0.12.18 v0.12.87 v4.9.1 v5.11.1 v5.12.0 v6.14.4 v6.16.0 v7.10.1 v8.6.0 v8.9.1 v8.10.0 v8.11.3 v8.11.4 v8.12.0 v8.13.0 v8.14.1 v8.15.0 v9.11.2 v10.0.0 v10.1.0 v10.2.1 v10.3.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0 v10.14.2 v10.15.1 v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0 v11.8.0 v11.9.0 v11.10.0 ```
After this revert: ```sh v0.6.21 v0.7.12 v0.8.28 v0.9.12 v0.10.48 v0.11.16 v0.12.9 v0.12.18 v0.12.87 iojs-v1.8.4 iojs-v2.5.0 iojs-v3.3.1 v4.9.1 v5.11.1 v5.12.0 v6.14.4 v6.16.0 v7.10.1 v8.6.0 v8.9.1 v8.10.0 v8.11.3 v8.11.4 v8.12.0 v8.13.0 v8.14.1 v8.15.0 v9.11.2 v10.0.0 v10.1.0 v10.2.1 v10.3.0 v10.4.1 v10.5.0 v10.6.0 v10.7.0 v10.8.0 v10.9.0 v10.10.0 v10.11.0 v10.12.0 v10.13.0 v10.14.2 v10.15.1 v11.0.0 v11.1.0 v11.2.0 v11.3.0 v11.4.0 v11.5.0 v11.6.0 v11.7.0 v11.8.0 v11.9.0 v11.10.0 ```
In other words, the sorting needs to happen *before* the `NVM_NODE_PREFIX` is removed. --- nvm.sh | 4 ++-- ...\" should display all installed versions." | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index 43caa24..4906a92 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1082,9 +1082,9 @@ nvm_ls() { \\#${SEARCH_PATTERN}# !d; " \ -e 's#^\([^/]\{1,\}\)/\(.*\)$#\2.\1#;' \ - -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ - -e "s#^${NVM_NODE_PREFIX}-##;" \ | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | command sed -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ + -e "s#^${NVM_NODE_PREFIX}-##;" \ )" fi fi diff --git "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." index 6b71e1e..9f0eecd 100755 --- "a/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." +++ "b/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -25,3 +25,26 @@ nvm ls | grep v0.3.3 >/dev/null || die "v0.3.3 not found in: $(nvm ls)" nvm ls | grep v0.3.9 >/dev/null || die "v0.3.9 not found in: $(nvm ls)" nvm ls | grep v0.12.87 >/dev/null || die "v0.12.87 not found in: $(nvm ls)" nvm ls | grep iojs-v0.1.2 >/dev/null || die "iojs-v0.1.2 not found in: $(nvm ls)" + +OUTPUT="$(nvm_ls)" +EXPECTED_OUTPUT="v0.0.1 +v0.0.2 +v0.0.3 +v0.0.9 +v0.0.20 +iojs-v0.1.2 +v0.1.3 +v0.1.4 +v0.2.3 +v0.3.1 +v0.3.3 +v0.3.9 +iojs-v0.10.2 +v0.12.9 +v0.12.87 +v0.20.3" +if nvm_has_system_node || nvm_has_system_iojs; then + EXPECTED_OUTPUT="${EXPECTED_OUTPUT} +system" +fi +[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<"