39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/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 "$@"
|