#!/usr/bin/env bash
# Builds the engine build-image (build-image/Dockerfile) locally, tagged
# with build-image/VERSION and :latest. Does not push - test it with
# ./run-image.sh first, then publish with ./upload-image.sh.
set -euo pipefail

cd "$(dirname "${BASH_SOURCE[0]}")"
ROOT="$(pwd)"

fail() { echo "PREFLIGHT FAIL: $*" >&2; exit 1; }

command -v docker >/dev/null 2>&1 \
    || fail "docker not found in PATH"

IMAGE="${REGISTRY_IMAGE:-questshock/builder}"
if [ -f "$ROOT/registry.env" ]; then
    # shellcheck disable=SC1091
    source "$ROOT/registry.env"
    IMAGE="${REGISTRY_IMAGE:-$IMAGE}"
fi

VERSION="$(<"$ROOT/build-image/VERSION")"
[ -n "$VERSION" ] || fail "build-image/VERSION is empty"

echo "== Building $IMAGE:$VERSION =="
docker build \
    -f "$ROOT/build-image/Dockerfile" \
    -t "$IMAGE:$VERSION" \
    -t "$IMAGE:latest" \
    "$ROOT"

echo "== Done =="
echo "Image: $IMAGE:$VERSION (and :latest)"
echo "Test it with ./run-image.sh, then publish with ./upload-image.sh"
