#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$SCRIPT_DIR" ROOT_DIR="$(cd -- "$SCRIPT_DIR/../.." && pwd)" if ! command -v java >/dev/null 2>&1; then cat >&2 <<'EOF' ERROR: java was not found in PATH. Please install JDK 17 or newer, then rerun this script. EOF exit 1 fi JAVA_VERSION_OUTPUT="$(java -version 2>&1 | head -n 1)" JAVA_VERSION="$(printf '%s\n' "$JAVA_VERSION_OUTPUT" | sed -E 's/.*version "([0-9]+)(\.[0-9]+)?.*/\1/')" if ! [[ "$JAVA_VERSION" =~ ^[0-9]+$ ]]; then echo "WARNING: Unable to parse Java version from: $JAVA_VERSION_OUTPUT" >&2 elif [ "$JAVA_VERSION" -lt 17 ]; then echo "ERROR: JDK 17 or newer is required. Found: $JAVA_VERSION_OUTPUT" >&2 exit 1 fi if [ -x "$ROOT_DIR/gradlew" ]; then GRADLE_CMD=("$ROOT_DIR/gradlew") elif command -v gradle >/dev/null 2>&1; then GRADLE_CMD=(gradle) else cat >&2 <<'EOF' ERROR: Neither root gradlew nor system gradle was found. Run from a checkout that contains the Gradle wrapper, or install Gradle. EOF exit 1 fi cd "$PROJECT_DIR" "${GRADLE_CMD[@]}" --no-configuration-cache build "$@"