#!/usr/bin/env bash
set -euo pipefail
ROOT="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
WORK="${1:-$ROOT/work}"
[ "${PARTICIPANT_DISCLOSURE_CONSENT:-no}" = yes ] || { echo 'FAIL:DISCLOSURE_CONSENT_REQUIRED' >&2; exit 1; }
python3 "$ROOT/tools/validate_submission.py" result "$WORK/result.json" "$ROOT"
TMP="$(mktemp -d "$ROOT/.bundle.XXXXXX")"
trap 'rm -rf "$TMP"' EXIT INT TERM
mkdir -p "$TMP/payload"
cp "$WORK/result.json" "$WORK/environment.json" "$TMP/payload/"
cp -R "$WORK/passes" "$TMP/payload/passes"
tar --sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner -C "$TMP/payload" -cf "$TMP/submission-payload.tar" .
PAYLOAD_SHA="$(sha256sum "$TMP/submission-payload.tar" | awk '{print $1}')"
python3 "$ROOT/tools/build_manifest.py" "$ROOT" "$WORK/result.json" "$PAYLOAD_SHA" "$WORK/submission-manifest.json"
python3 "$ROOT/tools/validate_submission.py" manifest "$WORK/submission-manifest.json" "$ROOT"
cp "$WORK/submission-manifest.json" "$TMP/"
OUT="$WORK/$(python3 -c 'import json,sys; print(json.load(open(sys.argv[1]))["benchmark_id"])' "$WORK/result.json").submission.tar.zst"
tar --sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner --zstd -C "$TMP" -cf "$OUT" submission-manifest.json submission-payload.tar
sha256sum "$OUT" > "$OUT.sha256"
echo "PASS:$OUT"
echo 'SUBMISSION_INTAKE=PENDING; no upload performed.'
