parent
645bda4987
commit
8dc53d4dd5
|
@ -1,117 +1,111 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
cleanup () {
|
|
||||||
unset -f setup cleanup die
|
|
||||||
unset _PROFILE
|
|
||||||
rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1
|
|
||||||
}
|
|
||||||
die () { echo $@ ; cleanup ; exit 1; }
|
|
||||||
|
|
||||||
NVM_ENV=testing . ../../install.sh
|
|
||||||
|
|
||||||
setup () {
|
setup () {
|
||||||
touch .bashrc
|
HOME="."
|
||||||
touch .bash_profile
|
NVM_ENV=testing . ../../install.sh
|
||||||
touch .zshrc
|
touch ".bashrc"
|
||||||
touch .profile
|
touch ".bash_profile"
|
||||||
touch test_profile
|
touch ".zshrc"
|
||||||
|
touch ".profile"
|
||||||
|
touch "test_profile"
|
||||||
}
|
}
|
||||||
|
|
||||||
#Let's hack $HOME
|
cleanup () {
|
||||||
HOME="."
|
unset HOME
|
||||||
|
unset NVM_ENV
|
||||||
|
unset NVM_DETECT_PROFILE
|
||||||
|
unset -f setup cleanup die
|
||||||
|
rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
die () { echo "$@"; cleanup; exit 1; }
|
||||||
|
|
||||||
setup
|
setup
|
||||||
|
|
||||||
#Let's force $SHELL to be bash
|
#
|
||||||
SHELL="/bin/bash"
|
# Confirm profile detection via $SHELL works and that $PROFILE overrides profile detection
|
||||||
|
#
|
||||||
|
|
||||||
# $SHELL is set to bash and .bashrc is there, it must be detected
|
# .bashrc should be detected for bash
|
||||||
_PROFILE=$(nvm_detect_profile)
|
NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)"
|
||||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" &&
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
||||||
echo "_\$_PROFILE: _$_PROFILE" &&
|
die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash"
|
||||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" )
|
fi
|
||||||
|
|
||||||
# But $PROFILE should override
|
# $PROFILE should override .bashrc profile detection
|
||||||
_PROFILE="$(PROFILE=test_profile nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; declare PROFILE="test_profile"; nvm_detect_profile)"
|
||||||
_PROFILE=$(nvm_detect_profile)
|
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
||||||
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
die "nvm_detect_profile ignored \$PROFILE"
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
fi
|
||||||
die "nvm_detect_profile didn't pick \$PROFILE" )
|
|
||||||
unset PROFILE
|
# .zshrc should be detected for zsh
|
||||||
|
NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)"
|
||||||
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
|
||||||
|
die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# $PROFILE should override .zshrc profile detection
|
||||||
|
NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; declare PROFILE="test_profile"; nvm_detect_profile)"
|
||||||
|
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
||||||
|
die "nvm_detect_profile ignored \$PROFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#Let's force $SHELL to be zsh
|
#
|
||||||
SHELL="/usr/bin/zsh"
|
# Confirm $PROFILE is only returned when it points to a valid file
|
||||||
|
#
|
||||||
|
|
||||||
# $SHELL is set to zsh and .zshrc is there, it must be detected
|
# $PROFILE is a valid file
|
||||||
_PROFILE=$(nvm_detect_profile)
|
NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)"
|
||||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" &&
|
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
||||||
echo "_\$_PROFILE: _$_PROFILE" &&
|
die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file"
|
||||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" )
|
fi
|
||||||
|
|
||||||
# But $PROFILE should override
|
# $PROFILE is not a valid file
|
||||||
_PROFILE="$(PROFILE=test_profile nvm_detect_profile)"
|
rm "test_profile"
|
||||||
_PROFILE=$(nvm_detect_profile)
|
NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)"
|
||||||
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
die "nvm_detect_profile picked \$PROFILE when it was an invalid file"
|
||||||
die "nvm_detect_profile didn't pick \$PROFILE" )
|
fi
|
||||||
unset PROFILE
|
|
||||||
|
|
||||||
# if we unset shell it looks for the files
|
#
|
||||||
unset SHELL
|
# When profile detection fails via both $PROFILE and $SHELL, profile detection should select based on the existence of
|
||||||
|
# one of the following files is the following order: .profile, .bashrc, .bash_profile, .zshrc and
|
||||||
# $PROFILE points to a valid file, its path must be returned
|
# return an empty value if everything fails
|
||||||
PROFILE="test_profile"
|
#
|
||||||
_PROFILE=$(nvm_detect_profile)
|
|
||||||
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
|
||||||
die "nvm_detect_profile didn't pick \$PROFILE" )
|
|
||||||
|
|
||||||
# $PROFILE doesn't point to a valid file, its path must not be returned
|
|
||||||
PROFILE="invalid_profile"
|
|
||||||
_PROFILE=$(nvm_detect_profile)
|
|
||||||
[ "_$_PROFILE" != "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
|
||||||
die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" )
|
|
||||||
|
|
||||||
|
|
||||||
# Below are tests for when $PROFILE is undefined
|
|
||||||
rm test_profile
|
|
||||||
unset PROFILE
|
|
||||||
|
|
||||||
# It should favor .profile if file exists
|
# It should favor .profile if file exists
|
||||||
_PROFILE=$(nvm_detect_profile)
|
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
||||||
[ "_$_PROFILE" = "_$HOME/.profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
die "nvm_detect_profile should have selected .profile ($NVM_DETECT_PROFILE) ($SHELL)"
|
||||||
die "nvm_detect_profile should have selected .profile" )
|
fi
|
||||||
|
|
||||||
rm .profile
|
|
||||||
# Otherwise, it should favor .bashrc if file exists
|
# Otherwise, it should favor .bashrc if file exists
|
||||||
_PROFILE=$(nvm_detect_profile)
|
rm ".profile"
|
||||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
||||||
die "nvm_detect_profile should have selected .bashrc" )
|
die "nvm_detect_profile should have selected .bashrc"
|
||||||
|
fi
|
||||||
|
|
||||||
rm .bashrc
|
|
||||||
# Otherwise, it should favor .bash_profile if file exists
|
# Otherwise, it should favor .bash_profile if file exists
|
||||||
_PROFILE=$(nvm_detect_profile)
|
rm ".bashrc"
|
||||||
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then
|
||||||
die "nvm_detect_profile should have selected .bash_profile" )
|
die "nvm_detect_profile should have selected .bash_profile"
|
||||||
|
fi
|
||||||
|
|
||||||
rm .bash_profile
|
|
||||||
# Otherwise, it should favor .zshrc if file exists
|
# Otherwise, it should favor .zshrc if file exists
|
||||||
_PROFILE=$(nvm_detect_profile)
|
rm ".bash_profile"
|
||||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
|
||||||
die "nvm_detect_profile should have selected .zshrc" )
|
die "nvm_detect_profile should have selected .zshrc"
|
||||||
|
fi
|
||||||
|
|
||||||
rm .zshrc
|
|
||||||
# It should be empty if none is found
|
# It should be empty if none is found
|
||||||
_PROFILE=$(nvm_detect_profile)
|
rm ".zshrc"
|
||||||
[ -z "$_PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" &&
|
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
||||||
echo "_\$PROFILE: _$PROFILE" &&
|
if [ ! -z "$NVM_DETECT_PROFILE" ]; then
|
||||||
die "nvm_detect_profile should have echo'ed an empty value" )
|
die "nvm_detect_profile should have returned an empty value"
|
||||||
|
fi
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|
Loading…
Reference in New Issue