#!/usr/bin/env bash
# quicktest runs the ShellCheck unit tests in an interpreted mode.
# This allows running tests without compiling, which can be faster.
# 'cabal test' remains the source of truth.

path=$(find . -type f -path './dist*/Paths_ShellCheck.hs' | sort | head -n 1)
if [ -z "$path" ]
then
    echo >&2 "Unable to find Paths_ShellCheck.hs. Please 'cabal build' once."
      exit 1
fi
path="${path%/*}"


(
var=$(echo 'main' | ghci -isrc -i"$path" test/shellcheck.hs 2>&1 | tee /dev/stderr)
if [[ $var == *ExitSuccess* ]]
then
  exit 0
else
  grep -C 3 -e "Fail" -e "Tracing" <<< "$var"
  exit 1
fi
) 2>&1