Merge pull request #444 from creationix/fix_nvm_ls

Make sure `nvm ls foo` returns a nonzero exit code when a version is not found
diff --git a/nvm.sh b/nvm.sh
index 54a25f6..782a432 100644
--- a/nvm.sh
+++ b/nvm.sh
@@ -571,11 +571,15 @@
       NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@"
     ;;
     "ls" | "list" )
-      nvm_print_versions "`nvm_ls $2`"
+      local NVM_LS_OUTPUT
+      local NVM_LS_EXIT_CODE
+      NVM_LS_OUTPUT=$(nvm_ls "$2")
+      NVM_LS_EXIT_CODE=$?
+      nvm_print_versions "$NVM_LS_OUTPUT"
       if [ $# -eq 1 ]; then
         nvm alias
       fi
-      return
+      return $NVM_LS_EXIT_CODE
     ;;
     "ls-remote" | "list-remote" )
       nvm_print_versions "`nvm_ls_remote $2`"
diff --git "a/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found" "b/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found"
new file mode 100755
index 0000000..b29a947
--- /dev/null
+++ "b/test/fast/Running \"nvm ls foo\" should return a nonzero exit code when not found"
@@ -0,0 +1,7 @@
+ #!/bin/sh
+
+. ../../nvm.sh
+
+nvm ls nonexistent_version
+[ "$?" = "3" ]
+