You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.6 KiB
101 lines
3.6 KiB
#!/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 () { |
|
touch .bashrc |
|
touch .bash_profile |
|
touch .zshrc |
|
touch .profile |
|
touch test_profile |
|
} |
|
|
|
#Let's hack $HOME |
|
HOME="." |
|
|
|
setup |
|
|
|
#Let's force $SHELL to be bash |
|
SHELL="/bin/bash" |
|
|
|
# $SHELL is set to bash and .bashrc is there, it must be detected |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \ |
|
echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc" |
|
|
|
#Let's force $SHELL to be zsh |
|
SHELL="/usr/bin/zsh" |
|
|
|
# $SHELL is set to zsh and .zshrc is there, it must be detected |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \ |
|
echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" |
|
|
|
|
|
# if we unset shell it looks for the files |
|
unset SHELL |
|
|
|
# $PROFILE points to a valid file, its path must be returned |
|
PROFILE="test_profile" |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
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\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
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 |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
die "nvm_detect_profile should have selected .profile" |
|
|
|
rm .profile |
|
# Otherwise, it should favor .bashrc if file exists |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
die "nvm_detect_profile should have selected .bashrc" |
|
|
|
rm .bashrc |
|
# Otherwise, it should favor .bash_profile if file exists |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
die "nvm_detect_profile should have selected .bash_profile" |
|
|
|
rm .bash_profile |
|
# Otherwise, it should favor .zshrc if file exists |
|
_PROFILE=$(nvm_detect_profile) |
|
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
die "nvm_detect_profile should have selected .zshrc" |
|
|
|
rm .zshrc |
|
# It should be empty if none is found |
|
_PROFILE=$(nvm_detect_profile) |
|
[ -z "$_PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \ |
|
echo "_\$PROFILE: _$PROFILE\n" \ |
|
die "nvm_detect_profile should have echo'ed an empty value" |
|
|
|
|
|
cleanup
|
|
|