#!/bin/sh
set -e

BUILDER="$(cd "$(dirname "$0")" && pwd)"
BASEDIR="$(cd "$(dirname "$0")/../.." && pwd)"
APPNAME="$(basename "$BASEDIR")"

IMAGE="$APPNAME-builder"
NAME="$APPNAME-builder"

cd "$BASEDIR"

ZIG_VERSION=$(grep 'minimum_zig_version' "$BASEDIR/build.zig.zon" | sed 's/.*"\(.*\)".*/\1/')

mkdir -p "$BASEDIR/.zig-cache/builder/local"
mkdir -p "$BASEDIR/.zig-cache/builder/global"
mkdir -p "$BASEDIR/zig-pkg/builder"

docker pull archlinux:latest

docker build \
    --build-context zig=../zig \
    --build-arg ZIG_VERSION="$ZIG_VERSION" \
    -t "$IMAGE" \
    "$BUILDER"
docker run --rm -ti \
    --hostname "$NAME" \
    -u 1000:1000 \
    -v "$BASEDIR:/src/flow" \
    -v "$BASEDIR/.zig-cache/builder/local:/src/flow/.zig-cache" \
    -v "$BASEDIR/.zig-cache/builder/global:/home/builder/.cache/zig" \
    -v "$BASEDIR/zig-pkg/builder:/src/flow/zig-pkg" \
    "$IMAGE" \
    zig build "$@"
