diff --git a/test/support/travisci_deps.sh b/test/support/travisci_deps.sh index d4523ee..83cc32e 100755 --- a/test/support/travisci_deps.sh +++ b/test/support/travisci_deps.sh @@ -7,8 +7,26 @@ # # Note: $TRAVIS_OS_NAME will only be set on text boxes with multi-os enabled, # so use negation test so it will fail gracefully on normal Travis linux setup. -# -# TODO: also perhaps later only on ZSH test box if we split those if [[ "$TRAVIS_OS_NAME" != "osx" ]]; then - sudo apt-get install zsh + + # okay, so we know we're probably on a linux box (or at least not an osx box) + # at this point. do we need to install zsh? let's say the default case is no: + needs_zsh=false + + # check if zsh is listed in the TEST_SHELLS environment variable, set by + # our travis-ci build matrix. + if [[ $TEST_SHELLS =~ zsh ]]; then needs_zsh=true; fi + + # if there is NO $TEST_SHELLS env variable persent (which should never happen, + # but maybe someone has been monkeying with the .travis.yml), run_tests.sh is + # going to fall back onto the default of testing everything, so we need zsh. + if [[ -z "$TEST_SHELLS" ]]; then needs_zsh=true; fi + + # finally, we install zsh if needed! + if $needs_zsh ; then + sudo apt-get install zsh + else + echo "No deps required." + fi + fi