mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-12 07:01:50 +00:00
Merge ba5f880847
into ce60b6c44a
This commit is contained in:
commit
48af6a7e29
57
nvm.sh
57
nvm.sh
@ -412,6 +412,31 @@ nvm_num_version_groups() {
|
|||||||
nvm_echo "${#NVM_NUM_GROUPS}"
|
nvm_echo "${#NVM_NUM_GROUPS}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nvm_get_upgrade_version() {
|
||||||
|
if [ $# -lt 1 ]; then
|
||||||
|
nvm_echo 'N/A'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local VERSION
|
||||||
|
VERSION="$1"
|
||||||
|
|
||||||
|
local semver_major
|
||||||
|
semver_major="$(nvm_echo \"$base_version\" | command sed -e 's/v\([0-9]\+\)\.\([0-9]\+\).*/\1/')"
|
||||||
|
|
||||||
|
local semver_minor
|
||||||
|
semver_minor="$(nvm_echo \"$base_version\" | command sed -e 's/v\([0-9]\+\)\.\([0-9]\+\).*/\2/')"
|
||||||
|
|
||||||
|
local install_version
|
||||||
|
if [ $semver_major = '0' ]; then
|
||||||
|
install_version="v0.$semver_minor"
|
||||||
|
else
|
||||||
|
install_version="v$semver_major"
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm_echo "$(nvm_remote_version \"$install_version\")"
|
||||||
|
}
|
||||||
|
|
||||||
nvm_strip_path() {
|
nvm_strip_path() {
|
||||||
if [ -z "${NVM_DIR-}" ]; then
|
if [ -z "${NVM_DIR-}" ]; then
|
||||||
nvm_err '$NVM_DIR not set!'
|
nvm_err '$NVM_DIR not set!'
|
||||||
@ -1753,6 +1778,7 @@ nvm() {
|
|||||||
nvm_echo ' nvm --version Print out the latest released version of nvm'
|
nvm_echo ' nvm --version Print out the latest released version of nvm'
|
||||||
nvm_echo ' nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available'
|
nvm_echo ' nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available'
|
||||||
nvm_echo ' --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number>'
|
nvm_echo ' --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number>'
|
||||||
|
nvm_echo ' nvm upgrade [<version>] Upgrade to the latest minor/patch version'
|
||||||
nvm_echo ' nvm uninstall <version> Uninstall a version'
|
nvm_echo ' nvm uninstall <version> Uninstall a version'
|
||||||
nvm_echo ' nvm use [--silent] <version> Modify PATH to use <version>. Uses .nvmrc if available'
|
nvm_echo ' nvm use [--silent] <version> Modify PATH to use <version>. Uses .nvmrc if available'
|
||||||
nvm_echo ' nvm exec [--silent] <version> [<command>] Run <command> on <version>. Uses .nvmrc if available'
|
nvm_echo ' nvm exec [--silent] <version> [<command>] Run <command> on <version>. Uses .nvmrc if available'
|
||||||
@ -1967,6 +1993,37 @@ nvm() {
|
|||||||
fi
|
fi
|
||||||
return $?
|
return $?
|
||||||
;;
|
;;
|
||||||
|
"upgrade" )
|
||||||
|
local base_version
|
||||||
|
base_version="$(nvm_ls_current)"
|
||||||
|
|
||||||
|
if [ $# -ge 2 ]; then
|
||||||
|
base_version="$(nvm_match_version \"$1\")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $base_version = 'none' ]; then
|
||||||
|
nvm_err 'No version currently active, cannot upgrade'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $base_version = 'system' ]; then
|
||||||
|
nvm_err 'Cannot upgrade the system version of node'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local install_version
|
||||||
|
install_version="$(nvm_get_upgrade_version \"$base_version\")"
|
||||||
|
|
||||||
|
if [ $install_version = 'N/A' ]; then
|
||||||
|
nvm_err 'Unable to determine the version to upgrade to'
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm_echo "Upgrading $base_version to $install_version"
|
||||||
|
nvm_echo "($base_version will remain installed. Please adjust your aliases as necessary.)"
|
||||||
|
nvm install "$install_version" --reinstall-packages-from="$base_version"
|
||||||
|
return $?
|
||||||
|
;;
|
||||||
"uninstall" )
|
"uninstall" )
|
||||||
if [ $# -ne 2 ]; then
|
if [ $# -ne 2 ]; then
|
||||||
>&2 nvm --help
|
>&2 nvm --help
|
||||||
|
22
test/slow/nvm upgrade/Running "nvm upgrade" installs latest v0.12
Executable file
22
test/slow/nvm upgrade/Running "nvm upgrade" installs latest v0.12
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
# Source nvm and activate 0.12.0
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm use 0.12.0
|
||||||
|
|
||||||
|
# Install some global packages
|
||||||
|
npm install -g npm || die "npm install -g npm failed"
|
||||||
|
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"
|
||||||
|
|
||||||
|
# Upgrade it
|
||||||
|
nvm upgrade || die "Failed to run nvm upgrade"
|
||||||
|
|
||||||
|
# Uninstall old version
|
||||||
|
nvm uninstall 0.12.0
|
||||||
|
|
||||||
|
# Make sure a newer version of 0.12 is still installed
|
||||||
|
nvm ls | grep v0.12
|
||||||
|
[ "$?" = "0" ] || die "Failed to upgrade node"
|
4
test/slow/nvm upgrade/setup_dir
Executable file
4
test/slow/nvm upgrade/setup_dir
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm install 0.12.0
|
5
test/slow/nvm upgrade/teardown_dir
Executable file
5
test/slow/nvm upgrade/teardown_dir
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm uninstall 0.12
|
||||||
|
nvm deactivate
|
Loading…
Reference in New Issue
Block a user