From 5f5258b42ca6aa7d4e484d8df27f80fd46577378 Mon Sep 17 00:00:00 2001 From: David Mankin Date: Tue, 15 Sep 2015 23:27:51 +0000 Subject: [PATCH 1/2] Fix error messages in tests --- test/install_script/nvm_detect_profile | 55 +++++++++++++------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index 8676bcf..da185e3 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -27,19 +27,18 @@ 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" +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$HOME/.bashrc: _$HOME/.bashrc" && + echo "_\$_PROFILE: _$_PROFILE" && + 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" - +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$HOME/.zshrc: _$HOME/.zshrc" && + echo "_\$_PROFILE: _$_PROFILE" && + die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc" ) # if we unset shell it looks for the files unset SHELL @@ -47,16 +46,16 @@ 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" = "_$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\n" \ - echo "_\$PROFILE: _$PROFILE\n" \ - die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file" +[ "_$_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 @@ -65,37 +64,37 @@ 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" +[ "_$_PROFILE" = "_$HOME/.profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + 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" +[ "_$_PROFILE" = "_$HOME/.bashrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + 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" +[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + 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" +[ "_$_PROFILE" = "_$HOME/.zshrc" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + 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" +[ -z "$_PROFILE" ] || ( echo "_\$_PROFILE: _$_PROFILE" && + echo "_\$PROFILE: _$PROFILE" && + die "nvm_detect_profile should have echo'ed an empty value" ) cleanup From 301c57988d9b3e046cd56621369407c30592b77a Mon Sep 17 00:00:00 2001 From: David Mankin Date: Tue, 15 Sep 2015 23:34:02 +0000 Subject: [PATCH 2/2] PROFILE env var should override detected profile Add tests for PROFILE overriding detected files --- install.sh | 8 +++++--- test/install_script/nvm_detect_profile | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index 3774bb2..3558ef2 100755 --- a/install.sh +++ b/install.sh @@ -117,6 +117,10 @@ install_nvm_as_script() { # Otherwise, an empty string is returned # nvm_detect_profile() { + if [ -n "$PROFILE" -a -f "$PROFILE" ]; then + echo "$PROFILE" + return + fi local DETECTED_PROFILE DETECTED_PROFILE='' @@ -134,9 +138,7 @@ nvm_detect_profile() { fi if [ -z $DETECTED_PROFILE ]; then - if [ -f "$PROFILE" ]; then - DETECTED_PROFILE="$PROFILE" - elif [ -f "$HOME/.profile" ]; then + if [ -f "$HOME/.profile" ]; then DETECTED_PROFILE="$HOME/.profile" elif [ -f "$HOME/.bashrc" ]; then DETECTED_PROFILE="$HOME/.bashrc" diff --git a/test/install_script/nvm_detect_profile b/test/install_script/nvm_detect_profile index da185e3..4ec8e43 100755 --- a/test/install_script/nvm_detect_profile +++ b/test/install_script/nvm_detect_profile @@ -31,6 +31,15 @@ _PROFILE=$(nvm_detect_profile) echo "_\$_PROFILE: _$_PROFILE" && 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 SHELL="/usr/bin/zsh" @@ -40,6 +49,14 @@ _PROFILE=$(nvm_detect_profile) echo "_\$_PROFILE: _$_PROFILE" && 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 unset SHELL