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

39
nvm.sh
View File

@ -535,7 +535,7 @@ 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 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 current Display currently activated version"
echo " nvm ls List installed versions"
@ -794,20 +794,35 @@ nvm() {
fi
;;
"use" )
shift # start treating the args given to "use"
if [ $# -eq 0 ]; then
nvm help
return 127
fi
if [ $# -eq 1 ]; then
nvm_rc_version
if [ -n "$NVM_RC_VERSION" ]; then
VERSION=`nvm_version $NVM_RC_VERSION`
fi
elif [ "_$2" != '_system' ]; then
VERSION="$(nvm_version "$2")"
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
if [ -z "$VERSION" ]; then
nvm help
return 127
@ -822,7 +837,7 @@ nvm() {
return 127
fi
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
fi
@ -858,6 +873,12 @@ nvm() {
if [ "$NVM_SYMLINK_CURRENT" = true ]; then
rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current"
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"
;;
"run" )