[New] add `lts/-1` etc, to point to an LTS line relative to "latest"
parent
c372ff03e0
commit
4626d1aae6
19
nvm.sh
19
nvm.sh
|
@ -855,8 +855,25 @@ nvm_alias() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local NVM_ALIAS_DIR
|
||||||
|
NVM_ALIAS_DIR="$(nvm_alias_path)"
|
||||||
|
|
||||||
|
if [ "$(expr "${ALIAS}" : '^lts/-[1-9][0-9]*$')" -gt 0 ]; then
|
||||||
|
local N
|
||||||
|
N="$(echo "${ALIAS}" | cut -d '-' -f 2)"
|
||||||
|
local RESULT
|
||||||
|
RESULT="$(command ls "${NVM_ALIAS_DIR}/lts" | command tail -n "${N}" | command head -n 1)"
|
||||||
|
if [ "${RESULT}" != '*' ]; then
|
||||||
|
nvm_alias "lts/${RESULT}"
|
||||||
|
return $?
|
||||||
|
else
|
||||||
|
nvm_err 'That many LTS releases do not exist yet.'
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
local NVM_ALIAS_PATH
|
local NVM_ALIAS_PATH
|
||||||
NVM_ALIAS_PATH="$(nvm_alias_path)/${ALIAS}"
|
NVM_ALIAS_PATH="${NVM_ALIAS_DIR}/${ALIAS}"
|
||||||
if [ ! -f "${NVM_ALIAS_PATH}" ]; then
|
if [ ! -f "${NVM_ALIAS_PATH}" ]; then
|
||||||
nvm_err 'Alias does not exist.'
|
nvm_err 'Alias does not exist.'
|
||||||
return 2
|
return 2
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
erbium
|
||||||
|
dubnium
|
||||||
|
carbon
|
||||||
|
boron
|
||||||
|
argon
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
unset -f nvm_download
|
||||||
|
}
|
||||||
|
|
||||||
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
MOCKS_DIR="${PWD}/mocks"
|
||||||
|
|
||||||
|
# sample output at the time the test was written
|
||||||
|
TAB_PATH="${MOCKS_DIR}/nodejs.org-dist-index.tab"
|
||||||
|
nvm_download() {
|
||||||
|
cat "${TAB_PATH}"
|
||||||
|
}
|
||||||
|
|
||||||
|
nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!"
|
||||||
|
|
||||||
|
LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt"
|
||||||
|
|
||||||
|
N=0
|
||||||
|
while IFS= read -r LTS; do
|
||||||
|
N=$(($N+1))
|
||||||
|
EXPECTED="$(nvm_alias "lts/${LTS}")"
|
||||||
|
ACTUAL="$(nvm_alias "lts/-${N}")"
|
||||||
|
[ "${EXPECTED}" = "${ACTUAL}" ] || die "\`nvm_alias lts/-${N}\` was \`${ACTUAL}\`; expected \`${EXPECTED}\`"
|
||||||
|
done < "${LTS_NAMES_PATH}"
|
||||||
|
|
||||||
|
cleanup
|
|
@ -44,9 +44,14 @@ set -e
|
||||||
|
|
||||||
ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt"
|
ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt"
|
||||||
: > "$ALIAS_PATH"
|
: > "$ALIAS_PATH"
|
||||||
|
LTS_NAMES_PATH="$MOCKS_DIR/LTS_names.txt"
|
||||||
|
: > "$LTS_NAMES_PATH"
|
||||||
nvm_make_alias() {
|
nvm_make_alias() {
|
||||||
# prevent local alias creation, and store arguments
|
# prevent local alias creation, and store arguments
|
||||||
echo "${1}|${2}" >> "$ALIAS_PATH"
|
echo "${1}|${2}" >> "$ALIAS_PATH"
|
||||||
|
if [ "${1}" != 'lts/*' ]; then
|
||||||
|
echo "${1#lts/}" >> "$LTS_NAMES_PATH"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
nvm ls-remote --lts > /dev/null
|
nvm ls-remote --lts > /dev/null
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue