diff --git a/nvm.sh b/nvm.sh index c4a80af..98aaf97 100644 --- a/nvm.sh +++ b/nvm.sh @@ -1771,6 +1771,10 @@ nvm_install_binary() { command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ command rm -rf "${TMPDIR}" ); then + + if [ -n "${ALIAS-}" ]; then + nvm alias "${ALIAS}" "${provided_version}" + fi return 0 fi @@ -2370,6 +2374,8 @@ nvm() { nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' nvm_echo ' --no-progress Disable the progress bar on any downloads' + nvm_echo ' --alias= After installing, set the alias specified to the version specified. (same as: nvm alias )' + nvm_echo ' --default After installing, set default alias to the version specified. (same as: nvm alias default )' nvm_echo ' nvm uninstall Uninstall a version' nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' @@ -2546,6 +2552,7 @@ nvm() { nobinary=0 noprogress=0 local LTS + local ALIAS local NVM_UPGRADE_NPM NVM_UPGRADE_NPM=0 @@ -2585,6 +2592,22 @@ nvm() { NVM_UPGRADE_NPM=1 shift ;; + --default) + if [ -n "${ALIAS-}" ]; then + nvm_err '--default and --alias are mutually exclusive, and may not be provided more than once' + return 6 + fi + ALIAS='default' + shift + ;; + --alias=*) + if [ -n "${ALIAS-}" ]; then + nvm_err '--default and --alias are mutually exclusive, and may not be provided more than once' + return 6 + fi + ALIAS="${1##--alias=}" + shift + ;; --reinstall-packages-from=*) if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ]; then nvm_err '--reinstall-packages-from may not be provided more than once' @@ -2766,6 +2789,11 @@ nvm() { else nvm_ensure_default_set "${provided_version}" fi + + if [ -n "${ALIAS}" ]; then + nvm alias "${ALIAS}" "${provided_version}" + fi + return $? fi diff --git a/test/installation_node/install with --alias b/test/installation_node/install with --alias new file mode 100755 index 0000000..8be8cbd --- /dev/null +++ b/test/installation_node/install with --alias @@ -0,0 +1,11 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm install --alias=9 9.11.2 || die '`nvm install --alias=9 9.11.2` failed' + +TERM=dumb nvm alias | grep '9 -> 9.11.2 (-> v9.11.2 \*)' || die 'did not make the expected alias' diff --git a/test/installation_node/install with --default b/test/installation_node/install with --default new file mode 100755 index 0000000..5a06d34 --- /dev/null +++ b/test/installation_node/install with --default @@ -0,0 +1,11 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm install --default node || die '`nvm install --default` failed' + +TERM=dumb nvm alias | grep "default -> node (-> $(nvm version node) \*)" || die 'did not make the expected alias'