#!/usr/bin/env bash
# Build a fresh unique proof derivation on the configured remote builder.

set -euo pipefail

REPO_ROOT="$(git rev-parse --show-toplevel)"
source "$REPO_ROOT/tools/lib/state-paths.sh"
cd "$TOTALLY_SPIES_REPO_ROOT"

NIX_BIN="${NIX_BIN:-nix}"
BUILDER_CONF="${BUILDER_CONF:-$TOTALLY_SPIES_BUILDER_REMOTE_CONF_FILE}"

if [ ! -f "$BUILDER_CONF" ]; then
  echo "Missing builder config: $BUILDER_CONF" >&2
  echo "Run builder:local:register-remote first." >&2
  exit 1
fi

builder_spec="$(sed -n 's/^builders = //p' "$BUILDER_CONF")"
if [ -z "$builder_spec" ]; then
  echo "Missing builders entry in $BUILDER_CONF" >&2
  exit 1
fi

proof_name="spies-remote-proof-fresh-$(date +%s)"
proof_expr_file="${TMPDIR:-/tmp}/spies-remote-proof-${proof_name}.nix"
cat > "$proof_expr_file" <<EOF
let pkgs = import <nixpkgs> {}; in pkgs.runCommand "$proof_name" {} ''
  cat /proc/sys/kernel/hostname > \$out
''
EOF
proof_expr="$(cat "$proof_expr_file")"
rm -f "$proof_expr_file"

exec "$NIX_BIN" build --impure --expr "$proof_expr" --no-link --print-out-paths --builders "$builder_spec" --max-jobs 0 "$@"
