![mcamp221@gmail.com](/assets/img/avatar_default.png)
1 changed files with 90 additions and 96 deletions
@ -1,117 +1,111 @@ |
|||||||
#!/bin/sh |
#!/bin/sh |
||||||
|
|
||||||
cleanup () { |
setup () { |
||||||
unset -f setup cleanup die |
HOME="." |
||||||
unset _PROFILE |
NVM_ENV=testing . ../../install.sh |
||||||
rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1 |
touch ".bashrc" |
||||||
|
touch ".bash_profile" |
||||||
|
touch ".zshrc" |
||||||
|
touch ".profile" |
||||||
|
touch "test_profile" |
||||||
} |
} |
||||||
die () { echo $@ ; cleanup ; exit 1; } |
|
||||||
|
|
||||||
NVM_ENV=testing . ../../install.sh |
|
||||||
|
|
||||||
setup () { |
cleanup () { |
||||||
touch .bashrc |
unset HOME |
||||||
touch .bash_profile |
unset NVM_ENV |
||||||
touch .zshrc |
unset NVM_DETECT_PROFILE |
||||||
touch .profile |
unset -f setup cleanup die |
||||||
touch test_profile |
rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1 |
||||||
} |
} |
||||||
|
|
||||||
#Let's hack $HOME |
die () { echo "$@"; cleanup; exit 1; } |
||||||
HOME="." |
|
||||||
|
|
||||||
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 |
|
||||||
_PROFILE=$(nvm_detect_profile) |
# .bashrc should be detected for bash |
||||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" && |
NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)" |
||||||
echo "_\$_PROFILE: _$_PROFILE" && |
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then |
||||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" ) |
die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash" |
||||||
|
fi |
||||||
# But $PROFILE should override |
|
||||||
_PROFILE="$(PROFILE=test_profile nvm_detect_profile)" |
# $PROFILE should override .bashrc profile detection |
||||||
_PROFILE=$(nvm_detect_profile) |
NVM_DETECT_PROFILE="$(declare SHELL="/bin/bash"; 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 ignored \$PROFILE" |
||||||
die "nvm_detect_profile didn't pick \$PROFILE" ) |
fi |
||||||
unset PROFILE |
|
||||||
|
# .zshrc should be detected for zsh |
||||||
|
NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; unset PROFILE; nvm_detect_profile)" |
||||||
#Let's force $SHELL to be zsh |
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then |
||||||
SHELL="/usr/bin/zsh" |
die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh" |
||||||
|
fi |
||||||
# $SHELL is set to zsh and .zshrc is there, it must be detected |
|
||||||
_PROFILE=$(nvm_detect_profile) |
# $PROFILE should override .zshrc profile detection |
||||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" && |
NVM_DETECT_PROFILE="$(declare SHELL="/usr/bin/zsh"; declare PROFILE="test_profile"; nvm_detect_profile)" |
||||||
echo "_\$_PROFILE: _$_PROFILE" && |
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then |
||||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) |
die "nvm_detect_profile ignored \$PROFILE" |
||||||
|
fi |
||||||
# But $PROFILE should override |
|
||||||
_PROFILE="$(PROFILE=test_profile nvm_detect_profile)" |
|
||||||
_PROFILE=$(nvm_detect_profile) |
# |
||||||
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
# Confirm $PROFILE is only returned when it points to a valid file |
||||||
echo "_\$PROFILE: _$PROFILE" && |
# |
||||||
die "nvm_detect_profile didn't pick \$PROFILE" ) |
|
||||||
unset PROFILE |
# $PROFILE is a valid file |
||||||
|
NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)" |
||||||
# if we unset shell it looks for the files |
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then |
||||||
unset SHELL |
die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file" |
||||||
|
fi |
||||||
# $PROFILE points to a valid file, its path must be returned |
|
||||||
PROFILE="test_profile" |
# $PROFILE is not a valid file |
||||||
_PROFILE=$(nvm_detect_profile) |
rm "test_profile" |
||||||
[ "_$_PROFILE" = "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
NVM_DETECT_PROFILE="$(declare PROFILE="test_profile"; nvm_detect_profile)" |
||||||
echo "_\$PROFILE: _$PROFILE" && |
if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then |
||||||
die "nvm_detect_profile didn't pick \$PROFILE" ) |
die "nvm_detect_profile picked \$PROFILE when it was an invalid file" |
||||||
|
fi |
||||||
# $PROFILE doesn't point to a valid file, its path must not be returned |
|
||||||
PROFILE="invalid_profile" |
# |
||||||
_PROFILE=$(nvm_detect_profile) |
# When profile detection fails via both $PROFILE and $SHELL, profile detection should select based on the existence of |
||||||
[ "_$_PROFILE" != "_$PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && |
# one of the following files is the following order: .profile, .bashrc, .bash_profile, .zshrc and |
||||||
echo "_\$PROFILE: _$PROFILE" && |
# return an empty value if everything fails |
||||||
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