add support for chakracore

This commit is contained in:
Patrick Kettner 2018-06-06 18:34:07 -07:00
parent 9854928ba9
commit 2e7f86f9ac
12 changed files with 346 additions and 22 deletions

View File

@ -78,6 +78,16 @@ env:
- SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1
# - SHELL=ksh TEST_SUITE=installation_iojs
# - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1
- SHELL=sh TEST_SUITE=installation_chakra
- SHELL=sh TEST_SUITE=installation_chakra WITHOUT_CURL=1
- SHELL=dash TEST_SUITE=installation_chakra
- SHELL=dash TEST_SUITE=installation_chakra WITHOUT_CURL=1
- SHELL=bash TEST_SUITE=installation_chakra
- SHELL=bash TEST_SUITE=installation_chakra WITHOUT_CURL=1
- SHELL=zsh TEST_SUITE=installation_chakra
- SHELL=zsh TEST_SUITE=installation_chakra WITHOUT_CURL=1
# - SHELL=ksh TEST_SUITE=installation_chakra
# - SHELL=ksh TEST_SUITE=installation_chakra WITHOUT_CURL=1
- NODE=10 TEST="nvm install-latest-npm"
- NODE=9 TEST="nvm install-latest-npm"
- NODE=8 TEST="nvm install-latest-npm"

152
nvm.sh
View File

@ -125,6 +125,10 @@ nvm_has_system_node() {
[ "$(nvm deactivate >/dev/null 2>&1 && command -v node)" != '' ]
}
nvm_has_system_chakra() {
[ "$(nvm deactivate >/dev/null 2>&1 && command -v chakracore)" != '' ]
}
nvm_has_system_iojs() {
[ "$(nvm deactivate >/dev/null 2>&1 && command -v iojs)" != '' ]
}
@ -369,6 +373,8 @@ nvm_version_dir() {
nvm_echo "${NVM_DIR}/versions/node"
elif [ "_${NVM_WHICH_DIR}" = "_iojs" ]; then
nvm_echo "${NVM_DIR}/versions/io.js"
elif [ "_${NVM_WHICH_DIR}" = "_chakra" ]; then
nvm_echo "${NVM_DIR}/versions/chakra"
elif [ "_${NVM_WHICH_DIR}" = "_old" ]; then
nvm_echo "${NVM_DIR}"
else
@ -389,6 +395,8 @@ nvm_version_path() {
return 3
elif nvm_is_iojs_version "${VERSION}"; then
nvm_echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "${VERSION}")"
elif nvm_is_chakra_version "${VERSION}"; then
nvm_echo "$(nvm_version_dir chakra)/$(nvm_strip_chakra_prefix "${VERSION}")"
elif nvm_version_greater 0.12.0 "${VERSION}"; then
nvm_echo "$(nvm_version_dir old)/${VERSION}"
else
@ -464,6 +472,9 @@ nvm_remote_version() {
"$(nvm_iojs_prefix)")
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" &&:
;;
"$(nvm_chakra_prefix)")
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_chakra | command tail -1)" &&:
;;
*)
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")" &&:
;;
@ -485,6 +496,8 @@ nvm_remote_version() {
}
nvm_remote_versions() {
local NVM_CHAKRA_PREFIX
NVM_CHAKRA_PREFIX="$(nvm_chakra_prefix)"
local NVM_IOJS_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
local NVM_NODE_PREFIX
@ -499,6 +512,10 @@ nvm_remote_versions() {
fi
case "${PATTERN}" in
"${NVM_CHAKRA_PREFIX}" | "chakra")
NVM_FLAVOR="${NVM_CHAKRA_PREFIX}"
unset PATTERN
;;
"${NVM_IOJS_PREFIX}" | "io.js")
NVM_FLAVOR="${NVM_IOJS_PREFIX}"
unset PATTERN
@ -540,8 +557,19 @@ nvm_remote_versions() {
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
fi
local NVM_LS_REMOTE_CHAKRA_EXIT_CODE
NVM_LS_REMOTE_CHAKRA_EXIT_CODE=0
local NVM_LS_REMOTE_CHAKRA_OUTPUT
NVM_LS_REMOTE_CHAKRA_OUTPUT=''
if [ -z "${NVM_LTS-}" ] && ( \
[ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_CHAKRA_PREFIX}" ] \
); then
NVM_LS_REMOTE_CHAKRA_OUTPUT=$(nvm_ls_remote_chakra "${PATTERN-}") &&:
NVM_LS_REMOTE_CHAKRA_EXIT_CODE=$?
fi
VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT}
${NVM_LS_REMOTE_IOJS_OUTPUT}
${NVM_LS_REMOTE_IOJS_OUTPUT} ${NVM_LS_REMOTE_CHAKRA_OUTPUT}
${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')"
if [ -z "${VERSIONS}" ]; then
@ -549,7 +577,7 @@ ${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')"
return 3
fi
nvm_echo "${VERSIONS}"
return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE
return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE || $NVM_LS_REMOTE_CHAKRA_EXIT_CODE
}
nvm_is_valid_version() {
@ -649,7 +677,7 @@ nvm_change_path() {
nvm_binary_available() {
# binaries started with node 0.8.6
nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "${1-}")" v0.8.6
nvm_version_greater_than_or_equal_to "$(nvm_strip_chakra_prefix "$(nvm_strip_iojs_prefix "${1-}")")" v0.8.6
}
nvm_print_formatted_alias() {
@ -925,6 +953,9 @@ nvm_resolve_local_alias() {
fi
}
nvm_chakra_prefix() {
nvm_echo 'chakra'
}
nvm_iojs_prefix() {
nvm_echo 'iojs'
}
@ -937,10 +968,30 @@ nvm_is_iojs_version() {
return 1
}
nvm_is_chakra_version() {
case "${1-}" in chakra-*) return 0 ;; esac
return 1
}
nvm_add_iojs_prefix() {
nvm_echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${1-}")")"
}
nvm_add_chakra_prefix() {
nvm_echo "$(nvm_chakra_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_chakra_prefix "${1-}")")"
}
nvm_strip_chakra_prefix() {
local NVM_CHAKRA_PREFIX
NVM_CHAKRA_PREFIX="$(nvm_chakra_prefix)"
if [ "${1-}" = "${NVM_CHAKRA_PREFIX}" ]; then
nvm_echo
else
nvm_echo "${1#${NVM_CHAKRA_PREFIX}-}"
fi
}
nvm_strip_iojs_prefix() {
local NVM_IOJS_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
@ -963,17 +1014,21 @@ nvm_ls() {
local NVM_IOJS_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
local NVM_CHAKRA_PREFIX
NVM_CHAKRA_PREFIX="$(nvm_chakra_prefix)"
local NVM_NODE_PREFIX
NVM_NODE_PREFIX="$(nvm_node_prefix)"
local NVM_VERSION_DIR_IOJS
NVM_VERSION_DIR_IOJS="$(nvm_version_dir "${NVM_IOJS_PREFIX}")"
local NVM_VERSION_DIR_CHAKRA
NVM_VERSION_DIR_CHAKRA="$(nvm_version_dir "${NVM_CHAKRA_PREFIX}")"
local NVM_VERSION_DIR_NEW
NVM_VERSION_DIR_NEW="$(nvm_version_dir new)"
local NVM_VERSION_DIR_OLD
NVM_VERSION_DIR_OLD="$(nvm_version_dir old)"
case "${PATTERN}" in
"${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" )
"${NVM_CHAKRA_PREFIX}" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" )
PATTERN="${PATTERN}-"
;;
*)
@ -983,6 +1038,7 @@ nvm_ls() {
PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")"
;;
esac
if [ "${PATTERN}" = 'N/A' ]; then
return
fi
@ -997,10 +1053,12 @@ nvm_ls() {
VERSIONS="${PATTERN}"
elif nvm_is_version_installed "$(nvm_add_iojs_prefix "${PATTERN}")"; then
VERSIONS="$(nvm_add_iojs_prefix "${PATTERN}")"
elif nvm_is_version_installed "$(nvm_add_chakra_prefix "${PATTERN}")"; then
VERSIONS="$(nvm_add_chakra_prefix "${PATTERN}")"
fi
else
case "${PATTERN}" in
"${NVM_IOJS_PREFIX}-" | "${NVM_NODE_PREFIX}-" | "system") ;;
"${NVM_CHAKRA_PREFIX}-" | "${NVM_IOJS_PREFIX}-" | "${NVM_NODE_PREFIX}-" | "system") ;;
*)
local NUM_VERSION_GROUPS
NUM_VERSION_GROUPS="$(nvm_num_version_groups "${PATTERN}")"
@ -1031,6 +1089,12 @@ nvm_ls() {
if nvm_has_system_iojs; then
NVM_ADD_SYSTEM=true
fi
elif nvm_is_chakra_version "${PATTERN}"; then
NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_CHAKRA}"
PATTERN="$(nvm_strip_chakra_prefix "${PATTERN}")"
if nvm_has_system_chakra; then
NVM_ADD_SYSTEM=true
fi
elif [ "${PATTERN}" = "${NVM_NODE_PREFIX}-" ]; then
NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_OLD}"
NVM_DIRS_TO_SEARCH2="${NVM_VERSION_DIR_NEW}"
@ -1068,6 +1132,7 @@ nvm_ls() {
VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \
| command sed -e "
s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#;
s#${NVM_VERSION_DIR_CHAKRA}/#versions/${NVM_CHAKRA_PREFIX}/#;
s#^${NVM_DIR}/##;
\\#^[^v]# d;
\\#^versions\$# d;
@ -1126,6 +1191,10 @@ nvm_ls_remote_iojs() {
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${1-}"
}
nvm_ls_remote_chakra() {
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab chakra std "${1-}"
}
# args flavor, type, version
nvm_ls_remote_index_tab() {
local LTS
@ -1150,8 +1219,13 @@ nvm_ls_remote_index_tab() {
local PREFIX
PREFIX=''
case "${FLAVOR}-${TYPE}" in
chakra-std) PREFIX="$(nvm_chakra_prefix)-" ;;
iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;;
node-std) PREFIX='' ;;
chakra-*)
nvm_err 'unknown type of node-chakra release'
return 4
;;
iojs-*)
nvm_err 'unknown type of io.js release'
return 4
@ -1165,6 +1239,7 @@ nvm_ls_remote_index_tab() {
SORT_COMMAND='command sort'
case "${FLAVOR}" in
node) SORT_COMMAND='command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;;
chakra) SORT_COMMAND='command sort -t. -k1,1dr -k2,2n' ;;
esac
local PATTERN
@ -1174,6 +1249,8 @@ nvm_ls_remote_index_tab() {
if [ -n "${PATTERN}" ]; then
if [ "${FLAVOR}" = 'iojs' ]; then
PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${PATTERN}")")"
elif [ "${FLAVOR}" = 'chakra' ]; then
PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_chakra_prefix "${PATTERN}")")"
else
PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")"
fi
@ -1343,9 +1420,9 @@ nvm_compare_checksum() {
nvm_get_checksum() {
local FLAVOR
case "${1-}" in
node | iojs) FLAVOR="${1}" ;;
node | iojs | chakra) FLAVOR="${1}" ;;
*)
nvm_err 'supported flavors: node, iojs'
nvm_err 'supported flavors: node, iojs, chakra'
return 2
;;
esac
@ -1474,17 +1551,19 @@ nvm_print_versions() {
}
nvm_validate_implicit_alias() {
local NVM_CHAKRA_PREFIX
NVM_CHAKRA_PREFIX="$(nvm_chakra_prefix)"
local NVM_IOJS_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
local NVM_NODE_PREFIX
NVM_NODE_PREFIX="$(nvm_node_prefix)"
case "$1" in
"stable" | "unstable" | "$NVM_IOJS_PREFIX" | "$NVM_NODE_PREFIX" )
"stable" | "unstable" | "$NVM_IOJS_PREFIX" | "$NVM_CHAKRA_PREFIX" | "$NVM_NODE_PREFIX" )
return
;;
*)
nvm_err "Only implicit aliases 'stable', 'unstable', '$NVM_IOJS_PREFIX', and '$NVM_NODE_PREFIX' are supported."
nvm_err "Only implicit aliases 'stable', 'unstable', '$NVM_IOJS_PREFIX', '$NVM_CHAKRA_PREFIX', and '$NVM_NODE_PREFIX' are supported."
return 1
;;
esac
@ -1702,6 +1781,7 @@ nvm_get_mirror() {
case "${1}-${2}" in
node-std) nvm_echo "${NVM_NODEJS_ORG_MIRROR:-https://nodejs.org/dist}" ;;
iojs-std) nvm_echo "${NVM_IOJS_ORG_MIRROR:-https://iojs.org/dist}" ;;
chakra-std) nvm_echo "${NVM_CHAKRA_MIRROR:-https://nodejs.org/download/chakracore-release}" ;;
*)
nvm_err 'unknown type of node.js or io.js release'
return 1
@ -1713,9 +1793,9 @@ nvm_get_mirror() {
nvm_install_binary() {
local FLAVOR
case "${1-}" in
node | iojs) FLAVOR="${1}" ;;
node | iojs | chakra) FLAVOR="${1}" ;;
*)
nvm_err 'supported flavors: node, iojs'
nvm_err 'supported flavors: node, iojs, chakra'
return 4
;;
esac
@ -1731,7 +1811,7 @@ nvm_install_binary() {
fi
local VERSION
VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")"
VERSION="$(nvm_strip_chakra_prefix "$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")")"
if [ -z "$(nvm_get_os)" ]; then
return 2
@ -1791,9 +1871,9 @@ nvm_install_binary() {
nvm_get_download_slug() {
local FLAVOR
case "${1-}" in
node | iojs) FLAVOR="${1}" ;;
node | iojs | chakra) FLAVOR="${1}" ;;
*)
nvm_err 'supported flavors: node, iojs'
nvm_err 'supported flavors: node, iojs, chakra'
return 1
;;
esac
@ -1822,19 +1902,30 @@ nvm_get_download_slug() {
fi
if [ "${KIND}" = 'binary' ]; then
if [ "${FLAVOR}" = chakra ]; then
VERSION="$(nvm_strip_chakra_prefix "${VERSION}")"
nvm_echo "node-${VERSION}-${NVM_OS}-${NVM_ARCH}"
else
nvm_echo "${FLAVOR}-${VERSION}-${NVM_OS}-${NVM_ARCH}"
fi
elif [ "${KIND}" = 'source' ]; then
if [ "${FLAVOR}" = chakra ]; then
VERSION="$(nvm_strip_chakra_prefix "${VERSION}")"
nvm_err "node-${VERSION}"
nvm_echo "node-${VERSION}"
else
nvm_echo "${FLAVOR}-${VERSION}"
fi
fi
}
# args: flavor, kind, type, version
nvm_download_artifact() {
local FLAVOR
case "${1-}" in
node | iojs) FLAVOR="${1}" ;;
node | iojs | chakra) FLAVOR="${1}" ;;
*)
nvm_err 'supported flavors: node, iojs'
nvm_err 'supported flavors: node, iojs, chakra'
return 1
;;
esac
@ -1865,6 +1956,7 @@ nvm_download_artifact() {
return 3
fi
if [ "${KIND}" = 'binary' ] && ! nvm_binary_available "${VERSION}"; then
nvm_err "No precompiled binary available for ${VERSION}."
return
@ -1873,6 +1965,11 @@ nvm_download_artifact() {
local SLUG
SLUG="$(nvm_get_download_slug "${FLAVOR}" "${KIND}" "${VERSION}")"
if [ "${FLAVOR}" = chakra ]; then
VERSION="$(nvm_strip_chakra_prefix "${VERSION}")"
fi
local COMPRESSION
COMPRESSION='gz'
if nvm_supports_xz "${VERSION}"; then
@ -1886,7 +1983,7 @@ nvm_download_artifact() {
if [ "${KIND}" = 'binary' ]; then
tmpdir="$(nvm_cache_dir)/bin/${SLUG}"
else
tmpdir="$(nvm_cache_dir)/src/${SLUG}"
tmpdir="$(nvm_cache_dir)/src/${FLAVOR}-${SLUG}"
fi
command mkdir -p "${tmpdir}/files" || (
nvm_err "creating directory ${tmpdir}/files failed"
@ -1898,6 +1995,10 @@ nvm_download_artifact() {
local TARBALL_URL
if nvm_version_greater_than_or_equal_to "${VERSION}" 0.1.14; then
TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}"
elif nvm_is_chakra_version "${VERSION}"; then
local VERSION
VERSION="$(nvm_strip_chakra_prefix "${VERSION}")"
TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}"
else
# node <= 0.1.13 does not have a directory
TARBALL_URL="${MIRROR}/${SLUG}.tar.${COMPRESSION}"
@ -1982,9 +2083,9 @@ nvm_get_make_jobs() {
nvm_install_source() {
local FLAVOR
case "${1-}" in
node | iojs) FLAVOR="${1}" ;;
node | iojs | chakra) FLAVOR="${1}" ;;
*)
nvm_err 'supported flavors: node, iojs'
nvm_err 'supported flavors: node, iojs, chakra'
return 4
;;
esac
@ -2133,13 +2234,19 @@ nvm_install_npm_if_needed() {
nvm_match_version() {
local NVM_IOJS_PREFIX
local NVM_CHAKRA_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
NVM_CHAKRA_PREFIX="$(nvm_chakra_prefix)"
local PROVIDED_VERSION
PROVIDED_VERSION="$1"
case "_$PROVIDED_VERSION" in
"_$NVM_IOJS_PREFIX" | '_io.js')
nvm_version "$NVM_IOJS_PREFIX"
;;
"_$NVM_CHAKRA_PREFIX")
nvm_version "$NVM_CHAKRA_PREFIX"
;;
'_system')
nvm_echo 'system'
;;
@ -2480,6 +2587,7 @@ nvm() {
nvm_err "\$NPM_CONFIG_PREFIX: '$(nvm_sanitize_path "$NPM_CONFIG_PREFIX")'"
nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'"
nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'"
nvm_err "\$NVM_CHAKRA_MIRROR: '${NVM_CHAKRA_MIRROR}'"
nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'"
nvm_err "uname -a: '$(command uname -a | command awk '{$2=""; print}' | command xargs)'"
if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then
@ -2708,6 +2816,8 @@ nvm() {
local FLAVOR
if nvm_is_iojs_version "$VERSION"; then
FLAVOR="$(nvm_iojs_prefix)"
elif nvm_is_chakra_version "$VERSION"; then
FLAVOR="$(nvm_chakra_prefix)"
else
FLAVOR="$(nvm_node_prefix)"
fi
@ -2757,6 +2867,7 @@ nvm() {
EXIT_CODE=0
else
if [ "_$NVM_OS" = "_freebsd" ]; then
# node.js and io.js do not have a FreeBSD binary
nobinary=1
@ -2983,6 +3094,7 @@ nvm() {
fi
return 8
fi
if [ "${VERSION}" = 'N/A' ]; then
nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed."
nvm_err ""
@ -3544,7 +3656,7 @@ nvm() {
node_version_has_solaris_binary iojs_version_has_solaris_binary \
nvm_curl_libz_support nvm_command_info \
> /dev/null 2>&1
unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_CHAKRA_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \
> /dev/null 2>&1
;;

View File

@ -0,0 +1,23 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message"
# Remove the stuff we're clobbering.
[ -e "${NVM_DIR}/versions/chakra/v8.3.0" ] && rm -R "${NVM_DIR}/versions/chakra/v8.3.0"
[ -e "${NVM_DIR}/versions/chakra/v8.4.0" ] && rm -R "${NVM_DIR}/versions/chakra/v8.4.0"
# Install from binary
nvm install chakra-v8.3.0
nvm install chakra-v8.4.0
nvm use chakra-v8.3.0
node --version | grep v8.3.0 || die "precondition failed: chakra node doesn't start at v8.3.0"
nvm install chakra-v8.4.0
node --version | grep v8.4.0 || die "nvm install on already installed version doesn't use it (node binary)"

View File

@ -0,0 +1,18 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
NVM_TEST_VERSION="v8.3.0"
NVM_PREFIXED_TEST_VERSION="chakra-$NVM_TEST_VERSION"
# Remove the stuff we're clobbering.
[ -e "${NVM_DIR}/versions/chakra/${NVM_TEST_VERSION}" ] && rm -R "${NVM_DIR}/versions/chakra/${NVM_TEST_VERSION}"
# Install from binary
nvm install $NVM_PREFIXED_TEST_VERSION || die "install $NVM_PREFIXED_TEST_VERSION failed"
# Check
[ -d "${NVM_DIR}/versions/chakra/${NVM_TEST_VERSION}" ]
nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" || die "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed"

View File

@ -0,0 +1,22 @@
#!/bin/sh
\. ../common.sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
set -ex
NVM_TEST_VERSION='v8.2.1'
NVM_PREFIXED_TEST_VERSION="chakra-${NVM_TEST_VERSION}"
# Remove the stuff we're clobbering.
nvm uninstall "${NVM_TEST_VERSION}" || echo 'not installed'
# Install from source
(watch nvm install -s "${NVM_PREFIXED_TEST_VERSION}") || die "'nvm install -s ${NVM_PREFIXED_TEST_VERSION}' failed"
# Check
nvm_is_version_installed "${NVM_PREFIXED_TEST_VERSION}" || die 'version not installed'
nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" || "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed"

View File

@ -0,0 +1,24 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
# Remove the stuff we're clobbering.
[ -e "${NVM_DIR}/versions/io.js/v8.3.0" ] && rm -R "${NVM_DIR}/versions/io.js/v8.3.0"
[ -e "${NVM_DIR}/versions/io.js/v8.4.0" ] && rm -R "${NVM_DIR}/versions/io.js/v8.4.0"
# Install from binary
nvm install chakra-v8.3.0 || die "'nvm install chakra-v8.3.0' failed"
nvm i chakra-v8.4.0 || die "'nvm i chakra-v8.4.0' failed"
# Check
[ -d "${NVM_DIR}/versions/io.js/v8.3.0" ] || die "chakra v8.3.0 didn't exist"
[ -d "${NVM_DIR}/versions/io.js/v8.4.0" ] || die "chakra v8.4.0 didn't exist"
# Use the first one
nvm use chakra-8.3.0 || die "'nvm use chakra-8.3.0' failed"
# Use the latest one
nvm use chakra-8 || die "'nvm use chakra-8' failed"
[ "_$(node --version)" = "_v8.4.0" ] || die "'node --version' was not v8.4.0, got: $(node --version)"

View File

@ -0,0 +1,22 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
NVM_TEST_VERSION=v8.3.0
NVM_PREFIXED_TEST_VERSION="chakra-${NVM_TEST_VERSION}"
VERSION_PATH="${NVM_DIR}/versions/chakra/${NVM_TEST_VERSION}"
# Remove the stuff we're clobbering.
[ -e "${VERSION_PATH}" ] && rm -R "${VERSION_PATH}"
# Install from binary
echo "${NVM_PREFIXED_TEST_VERSION}" > .nvmrc
nvm install || die "'nvm install' failed"
# Check
[ -d "${VERSION_PATH}" ] || die "./${VERSION_PATH} did not exist"
nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" \
|| "'nvm run \'${NVM_PREFIXED_TEST_VERSION}\' --version | grep \'${NVM_TEST_VERSION}\'' failed"

View File

@ -0,0 +1,23 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
set -ex
NVM_TEST_VERSION='v8.3.0'
NVM_PREFIXED_TEST_VERSION="chakra-${NVM_TEST_VERSION}"
# Remove the stuff we're clobbering.
nvm uninstall "${NVM_TEST_VERSION}" || echo 'not installed'
# Install from binary
echo "${NVM_PREFIXED_TEST_VERSION}" > .nvmrc
nvm install -s || "'nvm install -s' failed"
# Check
nvm_is_version_installed "${NVM_PREFIXED_TEST_VERSION}" || die 'version is not installed'
nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" \
|| die "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed"

View File

@ -0,0 +1,31 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
# Remove the stuff we're clobbering.
[ -e "${NVM_DIR}/versions/chakra/v8.3.0" ] && rm -R "${NVM_DIR}/versions/chakra/v8.3.0"
[ -e "${NVM_DIR}/versions/chakra/v8.4.0" ] && rm -R "${NVM_DIR}/versions/chakra/v8.4.0"
# Install from binary
nvm install chakra-v8.3.0
# Check
[ -d "${NVM_DIR}/versions/chakra/v8.3.0" ] || die "nvm install chakra-v8.3.0 didn't install"
node --version | grep v8.3.0 > /dev/null || die "nvm install didn't use chakra-v8.3.0"
npm install -g object-is@0.0.0 || die "npm install -g object-is failed"
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
nvm ls chakra-1 | grep chakra-v8.3.0 > /dev/null || die "nvm ls chakra-1 didn't show chakra-v8.3.0"
nvm install chakra-v8.4.0 --reinstall-packages-from=chakra-8.3.0 || die "nvm install chakra-v8.4.0 --reinstall-packages-from=chakra-8.3.0 failed"
[ -d "${NVM_DIR}/versions/chakra/v8.4.0" ] || die "nvm install chakra-v8.4.0 didn't install"
nvm use chakra-1
node --version | grep v8.4.0 > /dev/null || die "nvm use chakra-1 didn't use v8.4.0"
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"

View File

@ -0,0 +1,19 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../nvm.sh
NVM_VERSION="v1"
NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -1 | sed 's/^[ ]*//;s/[ ]*$//')"
NVM_TEST_VERSION="$(nvm_strip_chakra_prefix "$NVM_PREFIXED_TEST_VERSION")"
# Remove the stuff we're clobbering.
[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION
# Install from binary
nvm install "$NVM_VERSION" || die "nvm install $NVM_VERSION failed"
# Check
[ -d "${NVM_DIR}/versions/chakra/$NVM_TEST_VERSION" ]
nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed"

View File

@ -0,0 +1,5 @@
#!/bin/sh
if [ -f ".nvmrc" ]; then
mv .nvmrc .nvmrc.bak
fi

View File

@ -0,0 +1,15 @@
#!/bin/sh
\. ../../nvm.sh
nvm deactivate
nvm uninstall chakra-v8.2.1
nvm uninstall chakra-v8.3.0
nvm uninstall chakra-v8.4.0
if [ -f ".nvmrc" ]; then
rm .nvmrc
fi
if [ -f ".nvmrc.bak" ]; then
mv .nvmrc.bak .nvmrc
fi