mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 22:31:51 +00:00
Merge 36c3c8fbc5
into e1ec264b26
This commit is contained in:
commit
3dd3ea097a
45
nvm.sh
45
nvm.sh
@ -36,6 +36,8 @@ nvm_version()
|
|||||||
# The default version is the current one
|
# The default version is the current one
|
||||||
if [ ! "$PATTERN" ]; then
|
if [ ! "$PATTERN" ]; then
|
||||||
PATTERN='current'
|
PATTERN='current'
|
||||||
|
else
|
||||||
|
PATTERN=`nvm_format_version $PATTERN`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
VERSION=`nvm_ls $PATTERN | tail -n1`
|
VERSION=`nvm_ls $PATTERN | tail -n1`
|
||||||
@ -57,6 +59,27 @@ nvm_remote_version()
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nvm_normalize_version()
|
||||||
|
{
|
||||||
|
echo "$1" | sed -e 's/^v//' | awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }';
|
||||||
|
}
|
||||||
|
|
||||||
|
nvm_format_version()
|
||||||
|
{
|
||||||
|
echo "$1" | sed -e 's/^\([0-9]\)/v\1/g'
|
||||||
|
}
|
||||||
|
|
||||||
|
nvm_binary_available()
|
||||||
|
{
|
||||||
|
# binaries started with node 0.8.6
|
||||||
|
MINIMAL="0.8.6"
|
||||||
|
VERSION=$1
|
||||||
|
if [ $(nvm_normalize_version $VERSION) -ge $(nvm_normalize_version $MINIMAL) ]; then
|
||||||
|
echo "1"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
nvm_ls()
|
nvm_ls()
|
||||||
{
|
{
|
||||||
PATTERN=$1
|
PATTERN=$1
|
||||||
@ -71,7 +94,7 @@ nvm_ls()
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
# If it looks like an explicit version, don't do anything funny
|
# If it looks like an explicit version, don't do anything funny
|
||||||
if [[ "$PATTERN" == v?*.?*.?* ]]; then
|
if echo "$PATTERN" | grep 'v.*\..*\..*' ; then
|
||||||
VERSIONS="$PATTERN"
|
VERSIONS="$PATTERN"
|
||||||
else
|
else
|
||||||
VERSIONS=`(cd $NVM_DIR; \ls -d v${PATTERN}* 2>/dev/null) | sort -t. -k 1.2,1n -k 2,2n -k 3,3n`
|
VERSIONS=`(cd $NVM_DIR; \ls -d v${PATTERN}* 2>/dev/null) | sort -t. -k 1.2,1n -k 2,2n -k 3,3n`
|
||||||
@ -88,9 +111,7 @@ nvm_ls_remote()
|
|||||||
{
|
{
|
||||||
PATTERN=$1
|
PATTERN=$1
|
||||||
if [ "$PATTERN" ]; then
|
if [ "$PATTERN" ]; then
|
||||||
if echo "${PATTERN}" | grep -v '^v' ; then
|
PATTERN=`nvm_format_version "$PATTERN"`
|
||||||
PATTERN=v$PATTERN
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
PATTERN=".*"
|
PATTERN=".*"
|
||||||
fi
|
fi
|
||||||
@ -175,14 +196,7 @@ nvm()
|
|||||||
|
|
||||||
# shortcut - try the binary if possible.
|
# shortcut - try the binary if possible.
|
||||||
if [ -n "$os" ]; then
|
if [ -n "$os" ]; then
|
||||||
binavail=
|
if [[ `nvm_binary_available "$VERSION"` -eq 1 ]]; then
|
||||||
# binaries started with node 0.8.6
|
|
||||||
case "$VERSION" in
|
|
||||||
v0.8.[012345]) binavail=0 ;;
|
|
||||||
v0.[1234567]) binavail=0 ;;
|
|
||||||
*) binavail=1 ;;
|
|
||||||
esac
|
|
||||||
if [ $binavail -eq 1 ]; then
|
|
||||||
t="$VERSION-$os-$arch"
|
t="$VERSION-$os-$arch"
|
||||||
url="http://nodejs.org/dist/$VERSION/node-${t}.tar.gz"
|
url="http://nodejs.org/dist/$VERSION/node-${t}.tar.gz"
|
||||||
if (
|
if (
|
||||||
@ -245,11 +259,12 @@ nvm()
|
|||||||
;;
|
;;
|
||||||
"uninstall" )
|
"uninstall" )
|
||||||
[ $# -ne 2 ] && nvm help && return
|
[ $# -ne 2 ] && nvm help && return
|
||||||
if [[ $2 == `nvm_version` ]]; then
|
PATTERN=`nvm_format_version $2`
|
||||||
echo "nvm: Cannot uninstall currently-active node version, $2."
|
if [[ $PATTERN == `nvm_version` ]]; then
|
||||||
|
echo "nvm: Cannot uninstall currently-active node version, $PATTERN."
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
VERSION=`nvm_version $2`
|
VERSION=`nvm_version $PATTERN`
|
||||||
if [ ! -d $NVM_DIR/$VERSION ]; then
|
if [ ! -d $NVM_DIR/$VERSION ]; then
|
||||||
echo "$VERSION version is not installed yet... installing"
|
echo "$VERSION version is not installed yet... installing"
|
||||||
nvm install $VERSION
|
nvm install $VERSION
|
||||||
|
Loading…
Reference in New Issue
Block a user