This commit is contained in:
davidmankin 2015-12-28 05:05:40 +00:00
commit 0c39cb1a3b
2 changed files with 48 additions and 30 deletions

View File

@ -115,6 +115,10 @@ install_nvm_as_script() {
# Otherwise, an empty string is returned # Otherwise, an empty string is returned
# #
nvm_detect_profile() { nvm_detect_profile() {
if [ -n "$PROFILE" -a -f "$PROFILE" ]; then
echo "$PROFILE"
return
fi
local DETECTED_PROFILE local DETECTED_PROFILE
DETECTED_PROFILE='' DETECTED_PROFILE=''
@ -132,9 +136,7 @@ nvm_detect_profile() {
fi fi
if [ -z $DETECTED_PROFILE ]; then if [ -z $DETECTED_PROFILE ]; then
if [ -f "$PROFILE" ]; then if [ -f "$HOME/.profile" ]; then
DETECTED_PROFILE="$PROFILE"
elif [ -f "$HOME/.profile" ]; then
DETECTED_PROFILE="$HOME/.profile" DETECTED_PROFILE="$HOME/.profile"
elif [ -f "$HOME/.bashrc" ]; then elif [ -f "$HOME/.bashrc" ]; then
DETECTED_PROFILE="$HOME/.bashrc" DETECTED_PROFILE="$HOME/.bashrc"

View File

@ -27,19 +27,35 @@ SHELL="/bin/bash"
# $SHELL is set to bash and .bashrc is there, it must be detected # $SHELL is set to bash and .bashrc is there, it must be detected
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \ [ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" &&
echo "_\$_PROFILE: _$_PROFILE\n" \ echo "_\$_PROFILE: _$_PROFILE" &&
die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" )
# But $PROFILE should override
PROFILE=test_profile
_PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile didn't pick \$PROFILE" )
unset PROFILE
#Let's force $SHELL to be zsh #Let's force $SHELL to be zsh
SHELL="/usr/bin/zsh" SHELL="/usr/bin/zsh"
# $SHELL is set to zsh and .zshrc is there, it must be detected # $SHELL is set to zsh and .zshrc is there, it must be detected
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \ [ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" &&
echo "_\$_PROFILE: _$_PROFILE\n" \ echo "_\$_PROFILE: _$_PROFILE" &&
die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" )
# But $PROFILE should override
PROFILE=test_profile
_PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile didn't pick \$PROFILE" )
unset PROFILE
# if we unset shell it looks for the files # if we unset shell it looks for the files
unset SHELL unset SHELL
@ -47,16 +63,16 @@ unset SHELL
# $PROFILE points to a valid file, its path must be returned # $PROFILE points to a valid file, its path must be returned
PROFILE="test_profile" PROFILE="test_profile"
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile didn't pick \$PROFILE" die "nvm_detect_profile didn't pick \$PROFILE" )
# $PROFILE doesn't point to a valid file, its path must not be returned # $PROFILE doesn't point to a valid file, its path must not be returned
PROFILE="invalid_profile" PROFILE="invalid_profile"
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" != "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ "_$_PROFILE" != "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" )
# Below are tests for when $PROFILE is undefined # Below are tests for when $PROFILE is undefined
@ -65,37 +81,37 @@ unset PROFILE
# It should favor .profile if file exists # It should favor .profile if file exists
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ "_$_PROFILE" = "_$HOME/.profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile should have selected .profile" die "nvm_detect_profile should have selected .profile" )
rm .profile rm .profile
# Otherwise, it should favor .bashrc if file exists # Otherwise, it should favor .bashrc if file exists
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile should have selected .bashrc" die "nvm_detect_profile should have selected .bashrc" )
rm .bashrc rm .bashrc
# Otherwise, it should favor .bash_profile if file exists # Otherwise, it should favor .bash_profile if file exists
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ "_$_PROFILE" = "_$HOME/.bash_profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile should have selected .bash_profile" die "nvm_detect_profile should have selected .bash_profile" )
rm .bash_profile rm .bash_profile
# Otherwise, it should favor .zshrc if file exists # Otherwise, it should favor .zshrc if file exists
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile should have selected .zshrc" die "nvm_detect_profile should have selected .zshrc" )
rm .zshrc rm .zshrc
# It should be empty if none is found # It should be empty if none is found
_PROFILE=$(nvm_detect_profile) _PROFILE=$(nvm_detect_profile)
[ -z "$_PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ [ -z "$_PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
echo "_\$PROFILE: _$PROFILE\n" \ echo "_\$PROFILE: _$PROFILE" &&
die "nvm_detect_profile should have echo'ed an empty value" die "nvm_detect_profile should have echo'ed an empty value" )
cleanup cleanup