Make `nvm copy-packages` refuse to copy packages from the currently activated version.
diff --git a/nvm.sh b/nvm.sh
index e4654ae..c17d0bc 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -792,9 +792,17 @@
nvm help
return 127
fi
- VERSION="$(nvm_version "$2")"
- # declare local INSTALLS first, otherwise it doesn't work in zsh
+ local PROVIDED_VERSION
+ PROVIDED_VERSION="$2"
+
+ if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ]; then
+ echo 'Can not copy packages from the current version of node.' >&2
+ return 2
+ fi
+
+ local VERSION
+ VERSION="$(nvm_version "$PROVIDED_VERSION")"
local INSTALLS
INSTALLS=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | xargs)
diff --git "a/test/slow/nvm copy-packages/Running \"nvm copy-packages $\050nvm ls current\051\" should error out" "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $\050nvm ls current\051\" should error out"
new file mode 100644
index 0000000..2e0d058
--- /dev/null
+++ "b/test/slow/nvm copy-packages/Running \"nvm copy-packages $\050nvm ls current\051\" should error out"
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+die () { echo $@ ; exit 1; }
+
+. ../../nvm.sh
+
+local EXPECTED_MSG="Can not copy packages from the current version of node."
+[ "$(nvm use 0.10.28 && nvm copy-packages 0.10.28 2&>1)" = "$EXPECTED_MSG" ] || die '"nvm use 0.10.28 && nvm copy-packages 0.10.28" did not fail with the right message'
+
+$(nvm use 0.10.28 && nvm copy-packages 0.10.28)
+[ $? = 2 ] || die '"nvm use 0.10.28 && nvm copy-packages 0.10.28" did not fail with the right error code'
+