From 430860a8bec7a59837929db37374b1bc71262e9c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Thu, 16 Dec 2021 15:54:38 -0800 Subject: [PATCH] [Fix] `nvm alias`/`nvm_list_aliases`: support `lts/` aliases See #2692 --- nvm.sh | 5 ++++ .../nvm_list_aliases works with LTS aliases | 23 +++++++++++++++++++ test/fast/Unit tests/mocks/lts-star.txt | 1 + update_test_mocks.sh | 1 + 4 files changed, 30 insertions(+) create mode 100755 test/fast/Aliases/nvm_list_aliases works with LTS aliases create mode 100644 test/fast/Unit tests/mocks/lts-star.txt diff --git a/nvm.sh b/nvm.sh index a37e422..239954d 100644 --- a/nvm.sh +++ b/nvm.sh @@ -988,6 +988,11 @@ nvm_list_aliases() { NVM_ALIAS_DIR="$(nvm_alias_path)" command mkdir -p "${NVM_ALIAS_DIR}/lts" + if [ "${ALIAS}" != "${ALIAS#lts/}" ]; then + nvm_alias "${ALIAS}" + return $? + fi + nvm_is_zsh && unsetopt local_options nomatch ( local ALIAS_PATH diff --git a/test/fast/Aliases/nvm_list_aliases works with LTS aliases b/test/fast/Aliases/nvm_list_aliases works with LTS aliases new file mode 100755 index 0000000..d398718 --- /dev/null +++ b/test/fast/Aliases/nvm_list_aliases works with LTS aliases @@ -0,0 +1,23 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { + echo "$@" + exit 1 +} + +set -e + +nvm_alias_path() { + nvm_echo "../../../alias" +} + +MOCKS_DIR="../Unit tests/mocks" + +EXPECTED_OUTPUT="$(cat "$MOCKS_DIR/lts-star.txt")" +STDOUT_OUTPUT="$(nvm_list_aliases "lts/*")" +STDERR_OUTPUT="$(nvm_list_aliases "lts/*" 2>&1 >/dev/null)" + +[ -z "${STDERR_OUTPUT}" ] || die "expected no stderr output, got >${STDERR_OUTPUT}<" +[ "${STDOUT_OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected ${EXPECTED_OUTPUT}, got >${STDOUT_OUTPUT}<" diff --git a/test/fast/Unit tests/mocks/lts-star.txt b/test/fast/Unit tests/mocks/lts-star.txt new file mode 100644 index 0000000..53d838a --- /dev/null +++ b/test/fast/Unit tests/mocks/lts-star.txt @@ -0,0 +1 @@ +lts/gallium diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 30a3782..cd63843 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -32,6 +32,7 @@ nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable.txt" nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable.txt" +nvm alias "lts/*" > "$MOCKS_DIR/lts-star.txt" set +e NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote nightly.txt"