install: Pass global-module check in the absence of npm

master
elliottcable 2015-02-02 20:42:12 -06:00
parent dd1a9ca6a0
commit 6cfc309336
2 changed files with 22 additions and 1 deletions

View File

@ -125,6 +125,13 @@ nvm_detect_profile() {
# Node, and warn them if so. # Node, and warn them if so.
# #
nvm_check_global_modules() { nvm_check_global_modules() {
command -v npm >/dev/null 2>&1 || return 0
local NPM_VERSION
NPM_VERSION="$(npm --version)"
NPM_VERSION="${NPM_VERSION:-0}"
[ "${NPM_VERSION%%[!0-9]*}" -gt 1 ] || return 0
local NPM_GLOBAL_MODULES local NPM_GLOBAL_MODULES
NPM_GLOBAL_MODULES=$(npm list -g --depth=0 | sed '/ npm@/d') NPM_GLOBAL_MODULES=$(npm list -g --depth=0 | sed '/ npm@/d')

View File

@ -4,14 +4,19 @@ cleanup () {
rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1
unset npm_config_prefix unset npm_config_prefix
rm -f npm
PATH="$ORIGINAL_PATH"
unset -f setup cleanup die skip unset -f setup cleanup die skip
unset message unset message ORIGINAL_PATH
} }
die () { echo $@ ; cleanup ; exit 1; } die () { echo $@ ; cleanup ; exit 1; }
NVM_ENV=testing . ../../install.sh NVM_ENV=testing . ../../install.sh
setup () { setup () {
ORIGINAL_PATH="$PATH"
npm_config_prefix="$(pwd)" npm_config_prefix="$(pwd)"
export npm_config_prefix export npm_config_prefix
mkdir -p "$npm_config_prefix/lib" mkdir -p "$npm_config_prefix/lib"
@ -37,4 +42,13 @@ JSON
message=$(nvm_check_global_modules) message=$(nvm_check_global_modules)
[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" [ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module"
# Faking the absence of npm
PATH=".:$PATH"
touch npm
chmod +x npm
message=$(nvm_check_global_modules)
[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable"
cleanup cleanup