From 6cfc30933659e0976d21d4094b09664f2530b768 Mon Sep 17 00:00:00 2001 From: elliottcable Date: Mon, 2 Feb 2015 20:42:12 -0600 Subject: [PATCH] install: Pass global-module check in the absence of npm --- install.sh | 7 +++++++ test/install_script/nvm_check_global_modules | 16 +++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 125e651..5018540 100755 --- a/install.sh +++ b/install.sh @@ -125,6 +125,13 @@ nvm_detect_profile() { # Node, and warn them if so. # 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 NPM_GLOBAL_MODULES=$(npm list -g --depth=0 | sed '/ npm@/d') diff --git a/test/install_script/nvm_check_global_modules b/test/install_script/nvm_check_global_modules index 4a5661c..10e0d40 100755 --- a/test/install_script/nvm_check_global_modules +++ b/test/install_script/nvm_check_global_modules @@ -4,14 +4,19 @@ cleanup () { rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 unset npm_config_prefix + rm -f npm + PATH="$ORIGINAL_PATH" + unset -f setup cleanup die skip - unset message + unset message ORIGINAL_PATH } die () { echo $@ ; cleanup ; exit 1; } NVM_ENV=testing . ../../install.sh setup () { + ORIGINAL_PATH="$PATH" + npm_config_prefix="$(pwd)" export npm_config_prefix mkdir -p "$npm_config_prefix/lib" @@ -37,4 +42,13 @@ JSON 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" +# 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