#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
EXPECTED="9.5.0"
LOCAL="$ROOT/.tools/gradle-$EXPECTED/bin/gradle"

choose_gradle() {
  if [[ -x "$LOCAL" ]]; then printf '%s\n' "$LOCAL"; return 0; fi
  if command -v gradle >/dev/null 2>&1; then command -v gradle; return 0; fi
  return 1
}

GRADLE="$(choose_gradle || true)"
if [[ -z "$GRADLE" ]]; then
  cat >&2 <<MSG
NinaPlayer needs Gradle $EXPECTED.
This source checkpoint intentionally does not hide a downloaded Gradle binary in the ZIP.
Install Gradle $EXPECTED or place it at .tools/gradle-$EXPECTED, then rerun this command.
Expected AGP: 9.3.0; compileSdk: 37; Build Tools: 36.0.0; NDK: 28.2.13676358; JDK: 17.
MSG
  exit 78
fi

ACTUAL="$($GRADLE --version 2>/dev/null | awk '/^Gradle / {print $2; exit}')"
if [[ "$ACTUAL" != "$EXPECTED" ]]; then
  echo "NinaPlayer refuses Gradle $ACTUAL; exact expected version is $EXPECTED." >&2
  echo "Use .tools/gradle-$EXPECTED or install that version explicitly." >&2
  exit 78
fi
exec "$GRADLE" "$@"
