Add support for `nvm ls-remote --lts`
parent
cb326cb19d
commit
ae07c3c345
57
nvm.sh
57
nvm.sh
|
@ -858,14 +858,16 @@ nvm_ls_remote() {
|
|||
else
|
||||
PATTERN=".*"
|
||||
fi
|
||||
nvm_ls_remote_index_tab node std "$NVM_NODEJS_ORG_MIRROR" "$PATTERN"
|
||||
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "$NVM_NODEJS_ORG_MIRROR" "$PATTERN"
|
||||
}
|
||||
|
||||
nvm_ls_remote_iojs() {
|
||||
nvm_ls_remote_index_tab iojs std "$NVM_IOJS_ORG_MIRROR" "$1"
|
||||
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "$NVM_IOJS_ORG_MIRROR" "$1"
|
||||
}
|
||||
|
||||
nvm_ls_remote_index_tab() {
|
||||
local LTS
|
||||
LTS="${NVM_LTS-}"
|
||||
if [ "$#" -lt 4 ]; then
|
||||
nvm_err 'not enough arguments'
|
||||
return 5
|
||||
|
@ -915,10 +917,11 @@ nvm_ls_remote_index_tab() {
|
|||
1d;
|
||||
s/^/$PREFIX/;
|
||||
" \
|
||||
| command awk -v pattern="${PATTERN-}" '{
|
||||
| command awk -v pattern="${PATTERN-}" -v lts="${LTS-}" '{
|
||||
if (!$1) { next }
|
||||
if (pattern && tolower($1) !~ tolower(pattern)) { next }
|
||||
if ($10 !~ /^\-?$/ && ! a[$10]++) print $1, $10; else print $1
|
||||
if (lts == "*" && $10 ~ /^\-?$/) { next }
|
||||
if ($10 !~ /^\-?$/) print $1, $10; else print $1
|
||||
}' \
|
||||
| nvm_grep -w "${PATTERN:-.*}" \
|
||||
| $SORT_COMMAND)"
|
||||
|
@ -1012,7 +1015,7 @@ nvm_print_versions() {
|
|||
fi
|
||||
fi
|
||||
if [ "$LTS" != "$VERSION" ]; then
|
||||
LTS=" (Latest LTS: $LTS)"
|
||||
LTS=" (LTS: $LTS)"
|
||||
LTS_LENGTH="${#LTS}"
|
||||
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
|
||||
LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m"
|
||||
|
@ -1791,9 +1794,11 @@ nvm() {
|
|||
nvm_echo ' nvm run [--silent] <version> [<args>] Run `node` on <version> with <args> as arguments. Uses .nvmrc if available'
|
||||
nvm_echo ' nvm current Display currently activated version'
|
||||
nvm_echo ' nvm ls List installed versions'
|
||||
nvm_echo ' nvm ls <version> List versions matching a given description'
|
||||
nvm_echo ' nvm ls <version> List versions matching a given <version>'
|
||||
nvm_echo ' nvm ls-remote List remote versions available for install'
|
||||
nvm_echo ' --lts When listing, only show LTS (long-term support) versions'
|
||||
nvm_echo ' nvm ls-remote <version> List remote versions available for install, matching a given <version>'
|
||||
nvm_echo ' --lts When listing, only show LTS (long-term support) versions'
|
||||
nvm_echo ' nvm version <version> Resolve the given description to a single local version'
|
||||
nvm_echo ' nvm version-remote <version> Resolve the given description to a single remote version'
|
||||
nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell'
|
||||
|
@ -2370,19 +2375,39 @@ nvm() {
|
|||
return $NVM_LS_EXIT_CODE
|
||||
;;
|
||||
"ls-remote" | "list-remote" )
|
||||
local PATTERN
|
||||
PATTERN="${2-}"
|
||||
local LTS
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local PATTERN
|
||||
local NVM_FLAVOR
|
||||
case "_$PATTERN" in
|
||||
"_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX" )
|
||||
NVM_FLAVOR="$PATTERN"
|
||||
PATTERN="$3"
|
||||
;;
|
||||
esac
|
||||
while [ $# -gt 1 ]
|
||||
do
|
||||
case "$2" in
|
||||
--lts)
|
||||
LTS='*'
|
||||
;;
|
||||
--*)
|
||||
nvm_err "Unsupported option \"$2\"."
|
||||
return 55;
|
||||
;;
|
||||
*)
|
||||
if [ -z "$PATTERN" ]; then
|
||||
PATTERN="${2-}"
|
||||
if [ -z "$NVM_FLAVOR" ]; then
|
||||
case "_$PATTERN" in
|
||||
"_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX")
|
||||
NVM_FLAVOR="$PATTERN"
|
||||
PATTERN=""
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
local NVM_LS_REMOTE_EXIT_CODE
|
||||
NVM_LS_REMOTE_EXIT_CODE=0
|
||||
|
@ -2392,7 +2417,7 @@ nvm() {
|
|||
NVM_LS_REMOTE_POST_MERGED_OUTPUT=''
|
||||
if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then
|
||||
local NVM_LS_REMOTE_OUTPUT
|
||||
NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN")
|
||||
NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote "$PATTERN")
|
||||
# split output into two
|
||||
NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}"
|
||||
NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}"
|
||||
|
@ -2404,7 +2429,7 @@ nvm() {
|
|||
local NVM_LS_REMOTE_IOJS_OUTPUT
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=''
|
||||
if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN")
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote_iojs "$PATTERN")
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
|
||||
fi
|
||||
|
||||
|
|
|
@ -0,0 +1,278 @@
|
|||
v0.1.14
|
||||
v0.1.15
|
||||
v0.1.16
|
||||
v0.1.17
|
||||
v0.1.18
|
||||
v0.1.19
|
||||
v0.1.20
|
||||
v0.1.21
|
||||
v0.1.22
|
||||
v0.1.23
|
||||
v0.1.24
|
||||
v0.1.25
|
||||
v0.1.26
|
||||
v0.1.27
|
||||
v0.1.28
|
||||
v0.1.29
|
||||
v0.1.30
|
||||
v0.1.31
|
||||
v0.1.32
|
||||
v0.1.33
|
||||
v0.1.90
|
||||
v0.1.91
|
||||
v0.1.92
|
||||
v0.1.93
|
||||
v0.1.94
|
||||
v0.1.95
|
||||
v0.1.96
|
||||
v0.1.97
|
||||
v0.1.98
|
||||
v0.1.99
|
||||
v0.1.100
|
||||
v0.1.101
|
||||
v0.1.102
|
||||
v0.1.103
|
||||
v0.1.104
|
||||
v0.2.0
|
||||
v0.2.1
|
||||
v0.2.2
|
||||
v0.2.3
|
||||
v0.2.4
|
||||
v0.2.5
|
||||
v0.2.6
|
||||
v0.3.0
|
||||
v0.3.1
|
||||
v0.3.2
|
||||
v0.3.3
|
||||
v0.3.4
|
||||
v0.3.5
|
||||
v0.3.6
|
||||
v0.3.7
|
||||
v0.3.8
|
||||
v0.4.0
|
||||
v0.4.1
|
||||
v0.4.2
|
||||
v0.4.3
|
||||
v0.4.4
|
||||
v0.4.5
|
||||
v0.4.6
|
||||
v0.4.7
|
||||
v0.4.8
|
||||
v0.4.9
|
||||
v0.4.10
|
||||
v0.4.11
|
||||
v0.4.12
|
||||
v0.5.0
|
||||
v0.5.1
|
||||
v0.5.2
|
||||
v0.5.3
|
||||
v0.5.4
|
||||
v0.5.5
|
||||
v0.5.6
|
||||
v0.5.7
|
||||
v0.5.8
|
||||
v0.5.9
|
||||
v0.5.10
|
||||
v0.6.0
|
||||
v0.6.1
|
||||
v0.6.2
|
||||
v0.6.3
|
||||
v0.6.4
|
||||
v0.6.5
|
||||
v0.6.6
|
||||
v0.6.7
|
||||
v0.6.8
|
||||
v0.6.9
|
||||
v0.6.10
|
||||
v0.6.11
|
||||
v0.6.12
|
||||
v0.6.13
|
||||
v0.6.14
|
||||
v0.6.15
|
||||
v0.6.16
|
||||
v0.6.17
|
||||
v0.6.18
|
||||
v0.6.19
|
||||
v0.6.20
|
||||
v0.6.21
|
||||
v0.7.0
|
||||
v0.7.1
|
||||
v0.7.2
|
||||
v0.7.3
|
||||
v0.7.4
|
||||
v0.7.5
|
||||
v0.7.6
|
||||
v0.7.7
|
||||
v0.7.8
|
||||
v0.7.9
|
||||
v0.7.10
|
||||
v0.7.11
|
||||
v0.7.12
|
||||
v0.8.0
|
||||
v0.8.1
|
||||
v0.8.2
|
||||
v0.8.3
|
||||
v0.8.4
|
||||
v0.8.5
|
||||
v0.8.6
|
||||
v0.8.7
|
||||
v0.8.8
|
||||
v0.8.9
|
||||
v0.8.10
|
||||
v0.8.11
|
||||
v0.8.12
|
||||
v0.8.13
|
||||
v0.8.14
|
||||
v0.8.15
|
||||
v0.8.16
|
||||
v0.8.17
|
||||
v0.8.18
|
||||
v0.8.19
|
||||
v0.8.20
|
||||
v0.8.21
|
||||
v0.8.22
|
||||
v0.8.23
|
||||
v0.8.24
|
||||
v0.8.25
|
||||
v0.8.26
|
||||
v0.8.27
|
||||
v0.8.28
|
||||
v0.9.0
|
||||
v0.9.1
|
||||
v0.9.2
|
||||
v0.9.3
|
||||
v0.9.4
|
||||
v0.9.5
|
||||
v0.9.6
|
||||
v0.9.7
|
||||
v0.9.8
|
||||
v0.9.9
|
||||
v0.9.10
|
||||
v0.9.11
|
||||
v0.9.12
|
||||
v0.10.0
|
||||
v0.10.1
|
||||
v0.10.2
|
||||
v0.10.3
|
||||
v0.10.4
|
||||
v0.10.5
|
||||
v0.10.6
|
||||
v0.10.7
|
||||
v0.10.8
|
||||
v0.10.9
|
||||
v0.10.10
|
||||
v0.10.11
|
||||
v0.10.12
|
||||
v0.10.13
|
||||
v0.10.14
|
||||
v0.10.15
|
||||
v0.10.16
|
||||
v0.10.17
|
||||
v0.10.18
|
||||
v0.10.19
|
||||
v0.10.20
|
||||
v0.10.21
|
||||
v0.10.22
|
||||
v0.10.23
|
||||
v0.10.24
|
||||
v0.10.25
|
||||
v0.10.26
|
||||
v0.10.27
|
||||
v0.10.28
|
||||
v0.10.29
|
||||
v0.10.30
|
||||
v0.10.31
|
||||
v0.10.32
|
||||
v0.10.33
|
||||
v0.10.34
|
||||
v0.10.35
|
||||
v0.10.36
|
||||
v0.10.37
|
||||
v0.10.38
|
||||
v0.10.39
|
||||
v0.10.40
|
||||
v0.10.41
|
||||
v0.10.42
|
||||
v0.10.43
|
||||
v0.10.44
|
||||
v0.10.45
|
||||
v0.10.46
|
||||
v0.11.0
|
||||
v0.11.1
|
||||
v0.11.2
|
||||
v0.11.3
|
||||
v0.11.4
|
||||
v0.11.5
|
||||
v0.11.6
|
||||
v0.11.7
|
||||
v0.11.8
|
||||
v0.11.9
|
||||
v0.11.10
|
||||
v0.11.11
|
||||
v0.11.12
|
||||
v0.11.13
|
||||
v0.11.14
|
||||
v0.11.15
|
||||
v0.11.16
|
||||
v0.12.0
|
||||
v0.12.1
|
||||
v0.12.2
|
||||
v0.12.3
|
||||
v0.12.4
|
||||
v0.12.5
|
||||
v0.12.6
|
||||
v0.12.7
|
||||
v0.12.8
|
||||
v0.12.9
|
||||
v0.12.10
|
||||
v0.12.11
|
||||
v0.12.12
|
||||
v0.12.13
|
||||
v0.12.14
|
||||
v0.12.15
|
||||
v4.0.0
|
||||
v4.1.0
|
||||
v4.1.1
|
||||
v4.1.2
|
||||
v4.2.0 Argon
|
||||
v4.2.1 Argon
|
||||
v4.2.2 Argon
|
||||
v4.2.3 Argon
|
||||
v4.2.4 Argon
|
||||
v4.2.5 Argon
|
||||
v4.2.6 Argon
|
||||
v4.3.0 Argon
|
||||
v4.3.1 Argon
|
||||
v4.3.2 Argon
|
||||
v4.4.0 Argon
|
||||
v4.4.1 Argon
|
||||
v4.4.2 Argon
|
||||
v4.4.3 Argon
|
||||
v4.4.4 Argon
|
||||
v4.4.5 Argon
|
||||
v4.4.6 Argon
|
||||
v4.4.7 Argon
|
||||
v5.0.0
|
||||
v5.1.0
|
||||
v5.1.1
|
||||
v5.2.0
|
||||
v5.3.0
|
||||
v5.4.0
|
||||
v5.4.1
|
||||
v5.5.0
|
||||
v5.6.0
|
||||
v5.7.0
|
||||
v5.7.1
|
||||
v5.8.0
|
||||
v5.9.0
|
||||
v5.9.1
|
||||
v5.10.0
|
||||
v5.10.1
|
||||
v5.11.0
|
||||
v5.11.1
|
||||
v5.12.0
|
||||
v6.0.0
|
||||
v6.1.0
|
||||
v6.2.0
|
||||
v6.2.1
|
||||
v6.2.2
|
|
@ -0,0 +1,18 @@
|
|||
v4.2.0 Argon
|
||||
v4.2.1 Argon
|
||||
v4.2.2 Argon
|
||||
v4.2.3 Argon
|
||||
v4.2.4 Argon
|
||||
v4.2.5 Argon
|
||||
v4.2.6 Argon
|
||||
v4.3.0 Argon
|
||||
v4.3.1 Argon
|
||||
v4.3.2 Argon
|
||||
v4.4.0 Argon
|
||||
v4.4.1 Argon
|
||||
v4.4.2 Argon
|
||||
v4.4.3 Argon
|
||||
v4.4.4 Argon
|
||||
v4.4.5 Argon
|
||||
v4.4.6 Argon
|
||||
v4.4.7 Argon
|
|
@ -234,23 +234,23 @@ v4.0.0
|
|||
v4.1.0
|
||||
v4.1.1
|
||||
v4.1.2
|
||||
v4.2.0
|
||||
v4.2.1
|
||||
v4.2.2
|
||||
v4.2.3
|
||||
v4.2.4
|
||||
v4.2.5
|
||||
v4.2.6
|
||||
v4.3.0
|
||||
v4.3.1
|
||||
v4.3.2
|
||||
v4.4.0
|
||||
v4.4.1
|
||||
v4.4.2
|
||||
v4.4.3
|
||||
v4.4.4
|
||||
v4.4.5
|
||||
v4.4.6
|
||||
v4.2.0 Argon
|
||||
v4.2.1 Argon
|
||||
v4.2.2 Argon
|
||||
v4.2.3 Argon
|
||||
v4.2.4 Argon
|
||||
v4.2.5 Argon
|
||||
v4.2.6 Argon
|
||||
v4.3.0 Argon
|
||||
v4.3.1 Argon
|
||||
v4.3.2 Argon
|
||||
v4.4.0 Argon
|
||||
v4.4.1 Argon
|
||||
v4.4.2 Argon
|
||||
v4.4.3 Argon
|
||||
v4.4.4 Argon
|
||||
v4.4.5 Argon
|
||||
v4.4.6 Argon
|
||||
v4.4.7 Argon
|
||||
v5.0.0
|
||||
v5.1.0
|
||||
|
|
|
@ -8,13 +8,15 @@ cleanup() {
|
|||
|
||||
. ../../../nvm.sh
|
||||
|
||||
MOCKS_DIR="$PWD/mocks"
|
||||
|
||||
# sample output at the time the test was written
|
||||
TAB_PATH="$PWD/mocks/nodejs.org-dist-index.tab"
|
||||
TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab"
|
||||
nvm_download() {
|
||||
cat "$TAB_PATH"
|
||||
}
|
||||
|
||||
EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm_ls_remote.txt"
|
||||
EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote.txt"
|
||||
|
||||
OUTPUT="$(nvm_ls_remote foo)"
|
||||
EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)"
|
||||
|
@ -55,4 +57,15 @@ OUTPUT="$(nvm_ls_remote unstable)"
|
|||
EXPECTED_OUTPUT="v0.11.16"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS.txt"
|
||||
EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")"
|
||||
OUTPUT="$(NVM_LTS='*' nvm_ls_remote)"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS='*' nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<"
|
||||
|
||||
EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS argon.txt"
|
||||
EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")"
|
||||
OUTPUT="$(NVM_LTS=argon nvm_ls_remote)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS=argon nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<"
|
||||
|
||||
cleanup
|
||||
|
|
|
@ -13,6 +13,8 @@ mkdir -p "$MOCKS_DIR"
|
|||
|
||||
nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt"
|
||||
nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt"
|
||||
NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt"
|
||||
NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS argon.txt"
|
||||
nvm_download -L -s "$NVM_NODEJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab"
|
||||
nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab"
|
||||
|
||||
|
|
Loading…
Reference in New Issue