mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-12 15:11:50 +00:00
Support deduction of nvm directory in zsh
In zsh nvm fails to deduce nvm's directory from nvm.sh, because `$BASH_SOURCE` is not present in zsh. Use the directory of `$0`, if its filename is `nvm.sh`. We use `$BASH_SOUCE` in bash, `$0` in zsh (and similar) and fallback to `~/.nvm` otherwise.
This commit is contained in:
parent
61b44097fe
commit
192b2ecb1b
8
nvm.sh
8
nvm.sh
@ -19,8 +19,12 @@ fi
|
|||||||
|
|
||||||
# Auto detect the NVM_DIR
|
# Auto detect the NVM_DIR
|
||||||
if [ ! -d "$NVM_DIR" ]; then
|
if [ ! -d "$NVM_DIR" ]; then
|
||||||
if [ -n "$BASH_SOURCE" ]; then
|
if [ -n "${BASH_SOURCE}" ]; then
|
||||||
export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname ${BASH_SOURCE[0]:-$0}) > /dev/null && pwd)
|
export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname $BASH_SOURCE) > /dev/null && pwd)
|
||||||
|
elif [ "$(basename $0)" = nvm.sh ]; then
|
||||||
|
# Works in shells that put the path of the sourcee into $0. Unfortunately
|
||||||
|
# dash is not among these.
|
||||||
|
export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname $0) > /dev/null && pwd)
|
||||||
else
|
else
|
||||||
export NVM_DIR=$HOME/.nvm
|
export NVM_DIR=$HOME/.nvm
|
||||||
fi
|
fi
|
||||||
|
8
test/fast/$BASH_SOURCE should not be a problem in sh and zsh
Executable file
8
test/fast/$BASH_SOURCE should not be a problem in sh and zsh
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo Testing bash
|
||||||
|
bash -c '. ../../nvm.sh'
|
||||||
|
echo Testing zsh
|
||||||
|
zsh -c '. ../../nvm.sh'
|
||||||
|
echo Testing sh
|
||||||
|
sh -c '. ../../nvm.sh'
|
Loading…
Reference in New Issue
Block a user