Introduce nvm use --print-paths

It will print all paths that have been changed by nvm use. These paths are exported for all later nvm commands and need to be applied to the environment of other shells (in this case fish), therefore they are printed with the option.
This commit is contained in:
LoveIsGrief 2014-11-15 22:26:37 +01:00
parent e28a257f23
commit 1a0f939993

69
nvm.sh
View File

@ -531,22 +531,22 @@ nvm() {
echo "Node Version Manager" echo "Node Version Manager"
echo echo
echo "Usage:" echo "Usage:"
echo " nvm help Show this message" echo " nvm help Show this message"
echo " nvm --version Print out the latest released version of nvm" echo " nvm --version Print out the latest released version of nvm"
echo " nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available" echo " nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available"
echo " nvm uninstall <version> Uninstall a version" echo " nvm uninstall <version> Uninstall a version"
echo " nvm use <version> Modify PATH to use <version>. Uses .nvmrc if available" echo " nvm [--print-paths] use <version> Modify PATH (and optionally print it) to use <version>. Uses .nvmrc if available"
echo " nvm run <version> [<args>] Run <version> with <args> as arguments. Uses .nvmrc if available for <version>" echo " nvm run <version> [<args>] Run <version> with <args> as arguments. Uses .nvmrc if available for <version>"
echo " nvm current Display currently activated version" echo " nvm current Display currently activated version"
echo " nvm ls List installed versions" echo " nvm ls List installed versions"
echo " nvm ls <version> List versions matching a given description" echo " nvm ls <version> List versions matching a given description"
echo " nvm ls-remote List remote versions available for install" echo " nvm ls-remote List remote versions available for install"
echo " nvm deactivate Undo effects of NVM on current shell" echo " nvm deactivate Undo effects of NVM on current shell"
echo " nvm alias [<pattern>] Show all aliases beginning with <pattern>" echo " nvm alias [<pattern>] Show all aliases beginning with <pattern>"
echo " nvm alias <name> <version> Set an alias named <name> pointing to <version>" echo " nvm alias <name> <version> Set an alias named <name> pointing to <version>"
echo " nvm unalias <name> Deletes the alias named <name>" echo " nvm unalias <name> Deletes the alias named <name>"
echo " nvm copy-packages <version> Install global NPM packages contained in <version> to current version" echo " nvm copy-packages <version> Install global NPM packages contained in <version> to current version"
echo " nvm unload Unload NVM from shell" echo " nvm unload Unload NVM from shell"
echo echo
echo "Example:" echo "Example:"
echo " nvm install v0.10.24 Install a specific version number" echo " nvm install v0.10.24 Install a specific version number"
@ -794,20 +794,35 @@ nvm() {
fi fi
;; ;;
"use" ) "use" )
shift # start treating the args given to "use"
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
nvm help
return 127
fi
if [ $# -eq 1 ]; then
nvm_rc_version nvm_rc_version
if [ -n "$NVM_RC_VERSION" ]; then if [ -n "$NVM_RC_VERSION" ]; then
VERSION=`nvm_version $NVM_RC_VERSION` VERSION=`nvm_version $NVM_RC_VERSION`
fi fi
elif [ "_$2" != '_system' ]; then
VERSION="$(nvm_version "$2")"
else else
VERSION="$2" # Handle options
while [[ $# > 0 ]]; do
key="$1"
shift
case $key in
--print-paths)
PRINT_PATHS=true
;;
*)
if [ "_$key" != '_system' ]; then
VERSION="$(nvm_version "$key")"
else
VERSION="$key"
fi
break
;;
esac
done
fi fi
if [ -z "$VERSION" ]; then if [ -z "$VERSION" ]; then
nvm help nvm help
return 127 return 127
@ -822,7 +837,7 @@ nvm() {
return 127 return 127
fi fi
elif [ "_$VERSION" = "_∞" ]; then elif [ "_$VERSION" = "_∞" ]; then
echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2 echo "The alias \"$1\" leads to an infinite loop. Aborting." >&2
return 8 return 8
fi fi
@ -858,6 +873,12 @@ nvm() {
if [ "$NVM_SYMLINK_CURRENT" = true ]; then if [ "$NVM_SYMLINK_CURRENT" = true ]; then
rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current" rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current"
fi fi
if [ $PRINT_PATHS ]; then
echo PATH=$PATH
echo NODE_PATH=$NODE_PATH
echo NVM_PATH=$NVM_PATH
echo NVM_BIN=$NVM_BIN
fi
echo "Now using node $VERSION" echo "Now using node $VERSION"
;; ;;
"run" ) "run" )