Merge afd92a17be into 7fb6d1ec6a
This commit is contained in:
commit
275ea0da8c
53
nvm.sh
53
nvm.sh
|
|
@ -170,7 +170,8 @@ nvm() {
|
||||||
echo
|
echo
|
||||||
echo "Usage:"
|
echo "Usage:"
|
||||||
echo " nvm help Show this message"
|
echo " nvm help Show this message"
|
||||||
echo " nvm install [-s] <version> Download and install a <version>"
|
echo " nvm install [-s] [-b binary_tarball_url] [-u source_tarball_url] <version>"
|
||||||
|
echo " Download and install a <version>"
|
||||||
echo " nvm uninstall <version> Uninstall a version"
|
echo " nvm uninstall <version> Uninstall a version"
|
||||||
echo " nvm use <version> Modify PATH to use <version>"
|
echo " nvm use <version> Modify PATH to use <version>"
|
||||||
echo " nvm run <version> [<args>] Run <version> with <args> as arguments"
|
echo " nvm run <version> [<args>] Run <version> with <args> as arguments"
|
||||||
|
|
@ -216,16 +217,33 @@ nvm() {
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
# Initialize our own variables:
|
||||||
|
binary_url=""
|
||||||
|
source_url=""
|
||||||
nobinary=0
|
nobinary=0
|
||||||
if [ "$1" = "-s" ]; then
|
|
||||||
nobinary=1
|
OPTIND=1
|
||||||
shift
|
while getopts "sb:u:" opt; do
|
||||||
fi
|
case "$opt" in
|
||||||
|
s) nobinary=1
|
||||||
|
;;
|
||||||
|
b) binary_url=$OPTARG
|
||||||
|
;;
|
||||||
|
u) source_url=$OPTARG
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
[ "$1" = "--" ] && shift
|
||||||
|
|
||||||
if [ "$os" = "freebsd" ]; then
|
if [ "$os" = "freebsd" ]; then
|
||||||
nobinary=1
|
nobinary=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z $binary_url ] && [ ! -z $source_url ]; then
|
||||||
|
nobinary=1
|
||||||
|
fi
|
||||||
|
|
||||||
VERSION=`nvm_remote_version $1`
|
VERSION=`nvm_remote_version $1`
|
||||||
ADDITIONAL_PARAMETERS=''
|
ADDITIONAL_PARAMETERS=''
|
||||||
|
|
||||||
|
|
@ -250,16 +268,23 @@ nvm() {
|
||||||
v0.[1234567].*) binavail=0 ;;
|
v0.[1234567].*) binavail=0 ;;
|
||||||
*) binavail=1 ;;
|
*) binavail=1 ;;
|
||||||
esac
|
esac
|
||||||
if [ $binavail -eq 1 ]; then
|
if [ $binavail -eq 1 ] || [ ! -z $binary_url ]; then
|
||||||
|
if [ -z "$binary_url" ]; 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"
|
||||||
|
else
|
||||||
|
url=$binary_url
|
||||||
|
echo "Fetching binary from $binary_url"
|
||||||
|
fi
|
||||||
|
if [ ! -z "$binary_url" ]; then
|
||||||
sum=`curl -s http://nodejs.org/dist/$VERSION/SHASUMS.txt | \grep node-${t}.tar.gz | awk '{print $1}'`
|
sum=`curl -s http://nodejs.org/dist/$VERSION/SHASUMS.txt | \grep node-${t}.tar.gz | awk '{print $1}'`
|
||||||
|
fi
|
||||||
local tmpdir="$NVM_DIR/bin/node-${t}"
|
local tmpdir="$NVM_DIR/bin/node-${t}"
|
||||||
local tmptarball="$tmpdir/node-${t}.tar.gz"
|
local tmptarball="$tmpdir/node-${t}.tar.gz"
|
||||||
if (
|
if (
|
||||||
mkdir -p "$tmpdir" && \
|
mkdir -p "$tmpdir" && \
|
||||||
curl -C - --progress-bar $url -o "$tmptarball" && \
|
curl -C - --progress-bar $url -o "$tmptarball" && \
|
||||||
nvm_checksum `${shasum} "$tmptarball" | awk '{print $1}'` $sum && \
|
if [ "$sum" = "" ]; then : ; else nvm_checksum `${shasum} "$tmptarball" | awk '{print $1}'` $sum; fi && \
|
||||||
tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \
|
tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \
|
||||||
mv "$tmpdir" "$NVM_DIR/$VERSION" && \
|
mv "$tmpdir" "$NVM_DIR/$VERSION" && \
|
||||||
rm -f "$tmptarball"
|
rm -f "$tmptarball"
|
||||||
|
|
@ -267,6 +292,10 @@ nvm() {
|
||||||
then
|
then
|
||||||
nvm use $VERSION
|
nvm use $VERSION
|
||||||
return;
|
return;
|
||||||
|
elif [ -z "$source_url" ]; then
|
||||||
|
echo "Binary download failed, and no source URL provided. Aborting."
|
||||||
|
echo "nvm: install $VERSION failed!"
|
||||||
|
return 1
|
||||||
else
|
else
|
||||||
echo "Binary download failed, trying source." >&2
|
echo "Binary download failed, trying source." >&2
|
||||||
rm -rf "$tmptarball" "$tmpdir"
|
rm -rf "$tmptarball" "$tmpdir"
|
||||||
|
|
@ -285,12 +314,22 @@ nvm() {
|
||||||
fi
|
fi
|
||||||
local tmpdir="$NVM_DIR/src"
|
local tmpdir="$NVM_DIR/src"
|
||||||
local tmptarball="$tmpdir/node-$VERSION.tar.gz"
|
local tmptarball="$tmpdir/node-$VERSION.tar.gz"
|
||||||
|
if [ ! -z "$source_url" ]; then
|
||||||
|
if [ "`curl -Is "$source_url" | \grep '200 OK'`" != '' ]; then
|
||||||
|
echo "Fetching source from $source_url"
|
||||||
|
tarball=$source_url
|
||||||
|
else
|
||||||
|
echo "Could not find source tarball: $source_url"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
if [ "`curl -Is "http://nodejs.org/dist/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then
|
if [ "`curl -Is "http://nodejs.org/dist/$VERSION/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then
|
||||||
tarball="http://nodejs.org/dist/$VERSION/node-$VERSION.tar.gz"
|
tarball="http://nodejs.org/dist/$VERSION/node-$VERSION.tar.gz"
|
||||||
sum=`curl -s http://nodejs.org/dist/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'`
|
sum=`curl -s http://nodejs.org/dist/$VERSION/SHASUMS.txt | \grep node-$VERSION.tar.gz | awk '{print $1}'`
|
||||||
elif [ "`curl -Is "http://nodejs.org/dist/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then
|
elif [ "`curl -Is "http://nodejs.org/dist/node-$VERSION.tar.gz" | \grep '200 OK'`" != '' ]; then
|
||||||
tarball="http://nodejs.org/dist/node-$VERSION.tar.gz"
|
tarball="http://nodejs.org/dist/node-$VERSION.tar.gz"
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
if (
|
if (
|
||||||
[ ! -z $tarball ] && \
|
[ ! -z $tarball ] && \
|
||||||
mkdir -p "$tmpdir" && \
|
mkdir -p "$tmpdir" && \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue