mirror of
https://github.com/koalaman/shellcheck.git
synced 2024-12-21 19:41:25 -08:00
52 lines
1.2 KiB
Bash
Executable File
52 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# This script configures, builds and runs tests.
|
|
# It's meant for automatic cross-distro testing.
|
|
|
|
die() { echo "$*" >&2; exit 1; }
|
|
|
|
[ -e "ShellCheck.cabal" ] ||
|
|
die "ShellCheck.cabal not in current dir"
|
|
command -v cabal ||
|
|
die "cabal is missing"
|
|
|
|
cabal update ||
|
|
die "can't update"
|
|
|
|
if [ -e /etc/arch-release ]
|
|
then
|
|
# Arch has an unconventional packaging setup
|
|
flags=(--disable-library-vanilla --enable-shared --enable-executable-dynamic --ghc-options=-dynamic)
|
|
else
|
|
flags=()
|
|
fi
|
|
|
|
cabal install --dependencies-only --enable-tests "${flags[@]}" ||
|
|
cabal install --dependencies-only "${flags[@]}" ||
|
|
cabal install --dependencies-only --max-backjumps -1 "${flags[@]}" ||
|
|
die "can't install dependencies"
|
|
cabal configure --enable-tests "${flags[@]}" ||
|
|
die "configure failed"
|
|
cabal build ||
|
|
die "build failed"
|
|
cabal test ||
|
|
die "test failed"
|
|
cabal haddock ||
|
|
die "haddock failed"
|
|
|
|
sc="$(find . -name shellcheck -type f -perm -111)"
|
|
[ -x "$sc" ] || die "Can't find executable"
|
|
|
|
"$sc" - << 'EOF' || die "execution failed"
|
|
#!/bin/sh
|
|
echo "Hello World"
|
|
EOF
|
|
|
|
"$sc" - << 'EOF' && die "negative execution failed"
|
|
#!/bin/sh
|
|
echo $1
|
|
EOF
|
|
|
|
|
|
echo "Success"
|
|
exit 0
|