Merge pull request #1214 from ljharb/shellcheck
[Tests] add `shellcheck`
diff --git a/.travis.yml b/.travis.yml
index 39c5a44..e891e22 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,18 +3,25 @@
apt_packages:
- zsh
- ksh
+cache:
+ directories:
+ - $HOME/.stack
before_install:
- $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL
- curl --version
- wget --version
+ - if [ -n "${SHELLCHECK-}" ]; then sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442 && echo 'deb http://download.fpcomplete.com/ubuntu precise main' | sudo tee /etc/apt/sources.list.d/fpco.list && sudo apt-get update && sudo apt-get install stack bc -y && stack setup && stack install ShellCheck && shellcheck --version ; fi
install:
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
- chmod +x /tmp/urchin/package/urchin
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
script:
- export PATH=$(echo $PATH | sed 's/::/:/')
- - NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL
+ - export NVM_DIR="${TRAVIS_BUILD_DIR}"
+ - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh ; fi
+ - if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi
env:
+ - SHELLCHECK=true
- SHELL=bash TEST_SUITE=install_script
- SHELL=sh TEST_SUITE=fast
- SHELL=dash TEST_SUITE=fast
diff --git a/install.sh b/install.sh
index 7f272ee..b80c907 100755
--- a/install.sh
+++ b/install.sh
@@ -240,24 +240,24 @@
}
nvm_do_install() {
- if [ -z "$METHOD" ]; then
+ if [ -z "${METHOD}" ]; then
# Autodetect install method
- if nvm_has "git"; then
+ if nvm_has git; then
install_nvm_from_git
- elif nvm_has "nvm_download"; then
+ elif nvm_has nvm_download; then
install_nvm_as_script
else
- echo >&2 "You need git, curl, or wget to install nvm"
+ echo >&2 'You need git, curl, or wget to install nvm'
exit 1
fi
- elif [ "~$METHOD" = "~git" ]; then
- if ! nvm_has "git"; then
+ elif [ "${METHOD}" = 'git' ]; then
+ if ! nvm_has git; then
echo >&2 "You need git to install nvm"
exit 1
fi
install_nvm_from_git
- elif [ "~$METHOD" = "~script" ]; then
- if ! nvm_has "nvm_download"; then
+ elif [ "${METHOD}" = 'script' ]; then
+ if ! nvm_has nvm_download; then
echo >&2 "You need curl or wget to install nvm"
exit 1
fi