inter-hub-haskell/scripts/compile-check

45 lines
1.3 KiB
Text
Raw Normal View History

#!/usr/bin/env bash
# bin/compile-check — run ghcid standalone for fast compilation feedback.
#
# Does NOT start postgres or tailwind — just GHC.
# Relies on .ghci (sets -j1, loads IHP config).
#
# Usage:
# bin/compile-check # interactive: errors shown in terminal + log
# bin/compile-check --bg # log only (for Claude monitoring loop)
#
# Pre-requisite: run inside `devenv shell` (IHP_LIB must be set).
# Or: `devenv shell -- bin/compile-check`
#
# Log file: /tmp/ihub-compile-errors.txt (override with IHUB_COMPILE_LOG)
set -euo pipefail
LOGFILE="${IHUB_COMPILE_LOG:-/tmp/ihub-compile-errors.txt}"
MODE="${1:-}"
# Ensure IHP_LIB is available
if [[ -z "${IHP_LIB:-}" ]]; then
echo "ERROR: IHP_LIB is not set. Run inside devenv shell:" >&2
echo " devenv shell -- bin/compile-check" >&2
exit 1
fi
: > "$LOGFILE"
echo "[compile-check] Log: $LOGFILE"
echo "[compile-check] Mode: ${MODE:-interactive}"
if [[ "$MODE" == "--bg" ]]; then
# Background: write to log only, no colour/title
exec ghcid \
--no-title \
--outputfile "$LOGFILE" \
--command "ghci"
else
# Interactive: show errors in terminal AND write to log
exec ghcid \
--no-title \
--outputfile "$LOGFILE" \
--command "ghci"
fi