Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/install.sh40
1 files changed, 36 insertions, 4 deletions
diff --git a/scripts/install.sh b/scripts/install.sh
index 8dbf9acf2..ffdbe9340 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -4,15 +4,21 @@ if ! [ "x$NPM_DEBUG" = "x" ]; then
set +x
fi
-
+# make sure that node exists
node=`which node 2>&1`
ret=$?
if [ $ret -ne 0 ] || ! [ -x $node ]; then
echo "npm cannot be installed without nodejs." >&2
echo "Install node first, and then try again." >&2
+ echo "" >&2
+ echo "Maybe node is installed, but not in the PATH?" >&2
+ echo "Note that running as sudo can change envs." >&2
+ echo ""
+ echo "PATH=$PATH" >&2
exit $ret
fi
+# set the temp dir
TMP="${TMPDIR}"
if [ "x$TMP" = "x" ]; then
TMP="/tmp"
@@ -74,11 +80,12 @@ cd "$TMP" \
if [ $ret -eq 0 ]; then
req=`$node bin/read-package-json.js package.json engines.node`
if [ -e node_modules ]; then
- $node node_modules/semver/bin/semver -v "$node_version" -r "$req"
+ $node node_modules/semver/bin/semver -v "$node_version" -r "$req"
+ ret=$?
else
- $node bin/semver.js -v "$node_version" -r "$req"
+ $node bin/semver.js -v "$node_version" -r "$req"
+ ret=$?
fi
- ret=$?
fi
if [ $ret -ne 0 ]; then
echo "You need node $req to run this program." >&2
@@ -86,6 +93,31 @@ cd "$TMP" \
echo "Please upgrade node before continuing."
exit $ret
fi) \
+ && (ver=`$node bin/read-package-json.js package.json version`
+ isnpm10=0
+ if [ $ret -eq 0 ]; then
+ req=`$node bin/read-package-json.js package.json engines.node`
+ if [ -e node_modules ]; then
+ if $node node_modules/semver/bin/semver -v "$ver" -r "1"
+ then
+ isnpm10=1
+ fi
+ else
+ if $node bin/semver -v "$ver" -r ">=1.0"; then
+ isnpm10=1
+ fi
+ fi
+ fi
+
+ ret=0
+ if [ $isnpm10 -eq 1 ] && [ -f "scripts/clean-old.sh" ]; then
+ NODE=$node /bin/sh "scripts/clean-old.sh"
+ ret=$?
+ fi
+ if [ $ret -ne 0 ]; then
+ echo "Aborted 0.x cleanup. Exiting." >&2
+ exit $ret
+ fi) \
&& (if [ "$make" = "NOMAKE" ] || ! $make clean install; then
$node cli.js cache clean
$node cli.js rm npm --force --global