- build.sh scripts prioritize ~/.gradle/gradle-8.5/bin/gradle - New build_all.sh orchestrates generic-client and sageclient builds - sageclient build includes JDK 17/21 auto-detection - Avoids network timeouts from services.gradle.org
95 lines
3.1 KiB
Bash
Executable File
95 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# ──────────────────────────────────────────────────────────────
|
|
# bricks-mp — Build all test clients (generic-client, sageclient)
|
|
#
|
|
# Usage:
|
|
# ./build_all.sh # Build all
|
|
# ./build_all.sh generic # Build generic-client only
|
|
# ./build_all.sh sage # Build sageclient only
|
|
# ./build_all.sh run # Run generic-client
|
|
# ./build_all.sh clean # Clean all
|
|
# ──────────────────────────────────────────────────────────────
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# ─── Find Gradle ───
|
|
find_gradle() {
|
|
if [ -x "$HOME/.gradle/gradle-8.5/bin/gradle" ]; then
|
|
echo "$HOME/.gradle/gradle-8.5/bin/gradle"
|
|
return 0
|
|
fi
|
|
if [ -x "$SCRIPT_DIR/../gradlew" ]; then
|
|
echo "$SCRIPT_DIR/../gradlew"
|
|
return 0
|
|
fi
|
|
if command -v gradle >/dev/null 2>&1; then
|
|
echo "gradle"
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
if ! GRADLE_CMD="$(find_gradle)"; then
|
|
echo "ERROR: Gradle not found. Place at ~/.gradle/gradle-8.5 or install system gradle." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Using Gradle: $GRADLE_CMD"
|
|
|
|
MODE="${1:-build}"
|
|
|
|
gradle_build() {
|
|
local client="$1"
|
|
local dir="$SCRIPT_DIR/$client"
|
|
if [ ! -d "$dir" ]; then
|
|
echo "SKIP: $client (directory not found)"
|
|
return 0
|
|
fi
|
|
echo ""
|
|
echo "══════════════════════════════════════════════"
|
|
echo " Building: $client"
|
|
echo "══════════════════════════════════════════════"
|
|
cd "$dir"
|
|
|
|
case "$MODE" in
|
|
build|*)
|
|
"$GRADLE_CMD" compileKotlinJvm --no-daemon --no-configuration-cache
|
|
;;
|
|
run)
|
|
"$GRADLE_CMD" run --no-daemon --no-configuration-cache
|
|
;;
|
|
clean)
|
|
"$GRADLE_CMD" clean --no-daemon --no-configuration-cache
|
|
;;
|
|
package)
|
|
"$GRADLE_CMD" createDistributable --no-daemon --no-configuration-cache
|
|
;;
|
|
esac
|
|
echo "OK: $client"
|
|
}
|
|
|
|
case "$MODE" in
|
|
generic)
|
|
gradle_build generic-client
|
|
;;
|
|
sage)
|
|
gradle_build sageclient
|
|
;;
|
|
clean)
|
|
gradle_build generic-client
|
|
gradle_build sageclient
|
|
;;
|
|
run)
|
|
gradle_build generic-client
|
|
;;
|
|
build|*)
|
|
gradle_build generic-client
|
|
gradle_build sageclient
|
|
echo ""
|
|
echo "══════════════════════════════════════════════"
|
|
echo " All builds completed"
|
|
echo "══════════════════════════════════════════════"
|
|
;;
|
|
esac
|