Skip to content

Commit f2d31b0

Browse files
committed
Some refactoring to clear up the path to io.js release candidate support.
(unblocks #779)
1 parent 0b41352 commit f2d31b0

File tree

1 file changed

+70
-24
lines changed

1 file changed

+70
-24
lines changed

nvm.sh

Lines changed: 70 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,8 @@ nvm_is_valid_version() {
304304
return 0
305305
fi
306306
case "$1" in
307-
"$(nvm_iojs_prefix)" | "$(nvm_node_prefix)")
307+
"$(nvm_iojs_prefix)" | \
308+
"$(nvm_node_prefix)")
308309
return 0
309310
;;
310311
*)
@@ -538,7 +539,7 @@ nvm_ls() {
538539
local NVM_NODE_PREFIX
539540
NVM_NODE_PREFIX="$(nvm_node_prefix)"
540541
local NVM_VERSION_DIR_IOJS
541-
NVM_VERSION_DIR_IOJS="$(nvm_version_dir iojs)"
542+
NVM_VERSION_DIR_IOJS="$(nvm_version_dir "$NVM_IOJS_PREFIX")"
542543
local NVM_VERSION_DIR_NEW
543544
NVM_VERSION_DIR_NEW="$(nvm_version_dir new)"
544545
local NVM_VERSION_DIR_OLD
@@ -632,7 +633,8 @@ nvm_ls() {
632633
| command sort -s -t- -k1.1,1.1 \
633634
| command sed "
634635
s/^\($NVM_IOJS_PREFIX\)\./\1-/;
635-
s/^$NVM_NODE_PREFIX\.//")"
636+
s/^$NVM_NODE_PREFIX\.//" \
637+
)"
636638
fi
637639

638640
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
@@ -681,18 +683,31 @@ nvm_ls_remote() {
681683
}
682684

683685
nvm_ls_remote_iojs() {
686+
nvm_ls_remote_iojs_org std "$NVM_IOJS_ORG_MIRROR" "$1"
687+
}
688+
689+
nvm_ls_remote_iojs_org() {
690+
local PREFIX
691+
if [ "_$1" = "_std" ]; then
692+
PREFIX="$(nvm_iojs_prefix)"
693+
else
694+
echo "unknown type of io.js release" >&2
695+
return 4
696+
fi
697+
local MIRROR
698+
MIRROR="$2"
684699
local PATTERN
685-
PATTERN="$1"
700+
PATTERN="$3"
686701
local VERSIONS
687702
if [ -n "$PATTERN" ]; then
688703
PATTERN="$(nvm_ensure_version_prefix $(nvm_strip_iojs_prefix "$PATTERN"))"
689704
else
690705
PATTERN=".*"
691706
fi
692-
VERSIONS="$(nvm_download -L -s "$NVM_IOJS_ORG_MIRROR/index.tab" -o - \
707+
VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \
693708
| command sed "
694709
1d;
695-
s/^/$(nvm_iojs_prefix)-/;
710+
s/^/$PREFIX-/;
696711
s/[[:blank:]].*//" \
697712
| command grep -w "$PATTERN" \
698713
| command sort)"
@@ -769,7 +784,9 @@ nvm_print_implicit_alias() {
769784
return 1
770785
fi
771786

772-
if ! nvm_validate_implicit_alias "$2"; then
787+
local NVM_IMPLICIT
788+
NVM_IMPLICIT="$2"
789+
if ! nvm_validate_implicit_alias "$NVM_IMPLICIT"; then
773790
return 2
774791
fi
775792

@@ -780,12 +797,14 @@ nvm_print_implicit_alias() {
780797
local NVM_NODE_PREFIX
781798
NVM_NODE_PREFIX="$(nvm_node_prefix)"
782799
local NVM_COMMAND
800+
local NVM_ADD_PREFIX_COMMAND
783801
local LAST_TWO
784-
case "$2" in
785-
"$NVM_IOJS_PREFIX")
802+
case "$NVM_IMPLICIT" in
803+
"$NVM_IOJS_PREFIX" | "$NVM_IOJS_RC_PREFIX")
786804
NVM_COMMAND="nvm_ls_remote_iojs"
805+
NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix"
787806
if [ "_$1" = "_local" ]; then
788-
NVM_COMMAND="nvm_ls iojs"
807+
NVM_COMMAND="nvm_ls "$NVM_IMPLICIT""
789808
fi
790809

791810
ZHS_HAS_SHWORDSPLIT_UNSET=1
@@ -795,15 +814,15 @@ nvm_print_implicit_alias() {
795814
fi
796815

797816
local NVM_IOJS_VERSION
798-
NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IOJS_PREFIX"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)"
817+
NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)"
799818
local EXIT_CODE
800819
EXIT_CODE="$?"
801820

802821
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
803822
unsetopt shwordsplit
804823
fi
805824

806-
echo "$(nvm_add_iojs_prefix "$NVM_IOJS_VERSION")"
825+
echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")"
807826
return $EXIT_CODE
808827
;;
809828
"$NVM_NODE_PREFIX")
@@ -903,10 +922,19 @@ nvm_ensure_default_set() {
903922
}
904923

905924
nvm_install_iojs_binary() {
925+
local NVM_IOJS_TYPE
926+
NVM_IOJS_TYPE="$1"
927+
local MIRROR
928+
if [ "_$NVM_IOJS_TYPE" = "_std" ]; then
929+
MIRROR="$NVM_IOJS_ORG_MIRROR"
930+
else
931+
echo "unknown type of io.js release" >&2
932+
return 4
933+
fi
906934
local PREFIXED_VERSION
907-
PREFIXED_VERSION="$1"
935+
PREFIXED_VERSION="$2"
908936
local REINSTALL_PACKAGES_FROM
909-
REINSTALL_PACKAGES_FROM="$2"
937+
REINSTALL_PACKAGES_FROM="$3"
910938

911939
if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then
912940
echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2
@@ -926,8 +954,8 @@ nvm_install_iojs_binary() {
926954
if [ -n "$NVM_OS" ]; then
927955
if nvm_binary_available "$VERSION"; then
928956
t="$VERSION-$NVM_OS-$(nvm_get_arch)"
929-
url="$NVM_IOJS_ORG_MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz"
930-
sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')"
957+
url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz"
958+
sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')"
931959
local tmpdir
932960
tmpdir="$NVM_DIR/bin/iojs-${t}"
933961
local tmptarball
@@ -1308,7 +1336,7 @@ nvm() {
13081336
local NVM_INSTALL_SUCCESS
13091337
# skip binary install if "nobinary" option specified.
13101338
if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then
1311-
if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
1339+
if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
13121340
NVM_INSTALL_SUCCESS=true
13131341
elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
13141342
NVM_INSTALL_SUCCESS=true
@@ -1602,9 +1630,13 @@ nvm() {
16021630
"ls-remote" | "list-remote" )
16031631
local PATTERN
16041632
PATTERN="$2"
1633+
local NVM_IOJS_PREFIX
1634+
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
1635+
local NVM_NODE_PREFIX
1636+
NVM_NODE_PREFIX="$(nvm_node_prefix)"
16051637
local NVM_FLAVOR
16061638
case "_$PATTERN" in
1607-
"_$(nvm_iojs_prefix)" | "_$(nvm_node_prefix)" )
1639+
"_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX" )
16081640
NVM_FLAVOR="$PATTERN"
16091641
PATTERN="$3"
16101642
;;
@@ -1614,7 +1646,7 @@ nvm() {
16141646
NVM_LS_REMOTE_EXIT_CODE=0
16151647
local NVM_LS_REMOTE_OUTPUT
16161648
NVM_LS_REMOTE_OUTPUT=''
1617-
if [ "_$NVM_FLAVOR" != "_$(nvm_iojs_prefix)" ]; then
1649+
if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then
16181650
NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN")
16191651
NVM_LS_REMOTE_EXIT_CODE=$?
16201652
fi
@@ -1623,7 +1655,7 @@ nvm() {
16231655
NVM_LS_REMOTE_IOJS_EXIT_CODE=0
16241656
local NVM_LS_REMOTE_IOJS_OUTPUT
16251657
NVM_LS_REMOTE_IOJS_OUTPUT=''
1626-
if [ "_$NVM_FLAVOR" != "_$(nvm_node_prefix)" ]; then
1658+
if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then
16271659
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN")
16281660
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
16291661
fi
@@ -1809,11 +1841,25 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
18091841
unset -f nvm nvm_print_versions nvm_checksum \
18101842
nvm_iojs_prefix nvm_node_prefix \
18111843
nvm_add_iojs_prefix nvm_strip_iojs_prefix \
1812-
nvm_is_iojs_version \
1813-
nvm_ls_remote nvm_ls nvm_remote_version nvm_remote_versions \
1814-
nvm_version nvm_rc_version \
1844+
nvm_is_iojs_version nvm_is_alias \
1845+
nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \
1846+
nvm_ls nvm_remote_version nvm_remote_versions \
1847+
nvm_install_iojs_binary nvm_install_node_binary \
1848+
nvm_install_node_source \
1849+
nvm_version nvm_rc_version nvm_match_version \
1850+
nvm_ensure_default_set nvm_get_arch nvm_get_os \
1851+
nvm_print_implicit_alias nvm_validate_implicit_alias \
1852+
nvm_resolve_alias nvm_ls_current nvm_alias \
1853+
nvm_binary_available nvm_prepend_path nvm_strip_path \
1854+
nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \
1855+
nvm_normalize_version nvm_is_valid_version \
1856+
nvm_ensure_version_installed \
1857+
nvm_version_path nvm_alias_path nvm_version_dir \
1858+
nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \
18151859
nvm_version_greater nvm_version_greater_than_or_equal_to \
1816-
nvm_npm_global_modules \
1860+
nvm_print_npm_version nvm_npm_global_modules \
1861+
nvm_has_system_node nvm_has_system_iojs \
1862+
nvm_download nvm_get_latest nvm_has nvm_get_latest \
18171863
nvm_supports_source_options > /dev/null 2>&1
18181864
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
18191865
;;

0 commit comments

Comments
 (0)