Browse Source

Gracefully ignore Haskell stack edge case

Haskell stack can be slow to add new Haskell compiler versions.
The stack container test will fail until this is done, which blocks
docker Haskell updating as well.

Rather, lets ignore that particular failure, but still verify
with stack if the compiler version is supported.
Alistair Burrowes 4 years ago
parent
commit
5af2e70bc2
1 changed files with 14 additions and 1 deletions
  1. 14 1
      test/tests/haskell-stack/container.sh

+ 14 - 1
test/tests/haskell-stack/container.sh

@@ -2,6 +2,19 @@
 set -e
 
 # stack mostly sends to stderr
-stack --resolver ghc-$(ghc --print-project-version) new myproject 2> /dev/null
+if ! stackResult="$(stack --resolver ghc-$(ghc --print-project-version) new myproject 2>&1 > /dev/null)"; then
+	case "$stackResult" in
+		*"Unable to load global hints for"*)
+			echo >&2 'skipping; stack does not yet support this Haskell version'
+			exit 0
+			;;
+		*)
+			echo >&2 'error: stack failed:'
+			echo >&2 "$stackResult"
+			exit 1
+			;;
+	esac
+fi
+
 cd myproject
 stack run 2> /dev/null