diff --git a/nvm b/nvm new file mode 100755 index 0000000..b310b02 --- /dev/null +++ b/nvm @@ -0,0 +1,4 @@ +#!/bin/bash +source "$(cd $(dirname $0);pwd -P)/nvm.sh" +nvm "$@" +exit $? \ No newline at end of file diff --git a/nvm.sh b/nvm.sh old mode 100755 new mode 100644 index f88486e..b8488f5 --- a/nvm.sh +++ b/nvm.sh @@ -4,7 +4,6 @@ # # Implemented by Tim Caswell # with much bash help from Matthew Ranney - # Auto detect the NVM_DIR if [ ! -d "$NVM_DIR" ]; then export NVM_DIR=$(cd $(dirname ${BASH_SOURCE[0]:-$0}) && pwd) @@ -37,7 +36,13 @@ nvm_ls() { PATTERN=$1 VERSIONS='' + CURRENT_NODE="$(which node)" + if [ "$PATTERN" = 'current' ]; then + if [ "${CURRENT_NODE##$NVM_DIR}" = "${CURRENT_NODE}" ]; then + echo "N/A" + return + fi echo `node -v 2>/dev/null` return fi @@ -85,18 +90,21 @@ nvm() echo "Node Version Manager" echo echo "Usage:" - echo " nvm help Show this message" - echo " nvm install Download and install a " - echo " nvm uninstall Uninstall a version" - echo " nvm use Modify PATH to use " - echo " nvm run [] Run with as arguments" - echo " nvm ls List installed versions" - echo " nvm ls List versions matching a given description" - echo " nvm deactivate Undo effects of NVM on current shell" - echo " nvm alias [] Show all aliases beginning with " - echo " nvm alias Set an alias named pointing to " - echo " nvm unalias Deletes the alias named " - echo " nvm copy-packages Install global NPM packages contained in to current version" + echo " nvm help Show this message" + echo " nvm install Download and install a " + echo " nvm uninstall Uninstall a version" + echo " nvm use Modify PATH to use " + echo " nvm run [] [] Run with as arguments" + echo " nvm which [] Prints the path of the currently used node executable" + echo " nvm root [] Prints the root path of the currently used node version" + echo " nvm bin [] Prints the path to the 'bin' directory of the currently used node version" + echo " nvm ls List installed versions" + echo " nvm ls List versions matching a given description" + echo " nvm deactivate Undo effects of NVM on current shell" + echo " nvm alias [] Show all aliases beginning with " + echo " nvm alias Set an alias named pointing to " + echo " nvm unalias Deletes the alias named " + echo " nvm copy-packages Install global NPM packages contained in to current version" echo echo "Example:" echo " nvm install v0.4.12 Install a specific version number" @@ -249,6 +257,32 @@ nvm() echo "Running node $VERSION" $NVM_DIR/$VERSION/bin/node "${@:3}" ;; + "which" ) + # prints out the current node binary + VERSION=`nvm_version $2` + if [ ! -d $NVM_DIR/$VERSION ]; then + echo "$VERSION version is not installed yet" + return; + fi + echo $NVM_DIR/$VERSION/bin/node + ;; + "bin" ) + # prints out the current node binary + VERSION=`nvm_version $2` + if [ ! -d $NVM_DIR/$VERSION ]; then + echo "$VERSION version is not installed yet" + return; + fi + echo $NVM_DIR/$VERSION/bin + ;; + "root" ) + VERSION=`nvm_version $2` + if [ ! -d $NVM_DIR/$VERSION ]; then + echo "$VERSION version is not installed yet" + return; + fi + echo $NVM_DIR/$VERSION + ;; "ls" | "list" ) print_versions "`nvm_ls $2`" if [ $# -eq 1 ]; then