#!/usr/bin/env bash
set -euo pipefail

root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${root}"

host="${EVERY_CHANNEL_E2E_HDHR_HOST:-}"
channel="${EVERY_CHANNEL_E2E_HDHR_CHANNEL:-}"

usage() {
  cat >&2 <<'EOF'
usage:
  scripts/e2e-mesh-split-cmaf.sh --host <HDHR_HOST> --channel <CHANNEL>

what it does:
  - runs an ignored E2E test that publishes CMAF init+segments as objects from one peer
  - publishes manifests from another peer
  - subscriber stitches the two streams and enforces --require-manifest

notes:
  - runs inside `nix develop`
EOF
}

while [[ $# -gt 0 ]]; do
  case "$1" in
    --host)
      host="${2:-}"
      shift 2
      ;;
    --channel)
      channel="${2:-}"
      shift 2
      ;;
    -h|--help)
      usage
      exit 0
      ;;
    *)
      echo "error: unknown arg: $1" >&2
      usage
      exit 2
      ;;
  esac
done

if [[ -z "${host}" || -z "${channel}" ]]; then
  echo "error: --host and --channel are required" >&2
  usage
  exit 2
fi

export EVERY_CHANNEL_E2E_HDHR_HOST="${host}"
export EVERY_CHANNEL_E2E_HDHR_CHANNEL="${channel}"

nix develop --accept-flake-config -c \
  bash -lc 'cargo test -p ec-node --test e2e_mesh_split_cmaf -- --ignored --nocapture'
