From e7ada80d084d8a58168996462da6972509bc3b09 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Mon, 14 Jul 2014 11:49:49 -0700 Subject: [PATCH] `nvm use system` should work as expected. --- nvm.sh | 12 +++++++++++- ...ning \"nvm use system\" should work as expected" | 13 +++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100755 "test/fast/Running \"nvm use system\" should work as expected" diff --git a/nvm.sh b/nvm.sh index a0dc370..d0335e1 100644 --- a/nvm.sh +++ b/nvm.sh @@ -550,7 +550,17 @@ nvm() { VERSION=`nvm_version $NVM_RC_VERSION` fi else - VERSION=`nvm_version $2` + if [ $2 = 'system' ]; then + if nvm_has_system_node && nvm deactivate; then + echo "Now using system version of node: $(node -v 2>/dev/null)." + return + else + echo "System version of node not found." >&2 + return 127 + fi + else + VERSION=`nvm_version $2` + fi fi if [ -z "$VERSION" ]; then nvm help diff --git "a/test/fast/Running \"nvm use system\" should work as expected" "b/test/fast/Running \"nvm use system\" should work as expected" new file mode 100755 index 0000000..9b4e850 --- /dev/null +++ "b/test/fast/Running \"nvm use system\" should work as expected" @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo $@ ; exit 1; } + +. ../../nvm.sh + +nvm_has_system_node() { return 0; } +[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node" + +nvm_has_system_node() { return 1; } +[ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found" +nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" +