From b0590183ff34bf61983b76be71406f75c5b91d7d Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Fri, 29 May 2026 23:14:31 +0000 Subject: [PATCH] =?utf8?q?bootstrap-gradle.sh:=20Bootstrap-Skript=20f?= =?utf8?q?=C3=BCr=20Gradle-Wrapper-JAR=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Erzeugt den fehlenden `gradle-wrapper.jar` entweder über eine lokale Gradle-Installation oder durch direkten Download von GitHub. Mit `--distribute` wird der JAR auch in alle Geschwister-Übungsverzeichnisse kopiert (setzt TGZ-Verzeichnisstruktur voraus, in der Branch-Namen die Verzeichnishierarchie abbilden). Co-Authored-By: Claude Sonnet 4.6 --- bootstrap-gradle.sh | 56 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 bootstrap-gradle.sh diff --git a/bootstrap-gradle.sh b/bootstrap-gradle.sh new file mode 100644 index 00000000..3ddf5a6b --- /dev/null +++ b/bootstrap-gradle.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# Erzeugt den Gradle-Wrapper-JAR, der wegen Mail-Sicherheitsfiltern nicht im +# Repository enthalten ist. Einmalig ausführen, bevor ./gradlew verwendet wird. +# +# Variante 1: Verwendet eine lokale Gradle-Installation, falls vorhanden. +# Variante 2: Lädt den JAR direkt von GitHub herunter. +# +# Mit --distribute werden Gradle-Wrapper-JAR und gradlew zusätzlich in alle +# Geschwister-Übungsverzeichnisse kopiert (setzt TGZ-Verzeichnisstruktur voraus). + +set -e + +WRAPPER_JAR="gradle/wrapper/gradle-wrapper.jar" +PROPERTIES="gradle/wrapper/gradle-wrapper.properties" + +DISTRIBUTE=false +[ "$1" = "--distribute" ] && DISTRIBUTE=true + +if [ ! -f "$WRAPPER_JAR" ] || [ ! -f "gradlew" ]; then + VERSION=$(grep distributionUrl "$PROPERTIES" | grep -oE '[0-9]+\.[0-9]+(\.[0-9]+)?') + echo "Benötigte Gradle-Version: $VERSION" + + if command -v gradle >/dev/null 2>&1; then + echo "Verwende lokale Gradle-Installation..." + gradle wrapper --gradle-version="$VERSION" + echo "Gradle-Wrapper erfolgreich erzeugt." + else + echo "Kein lokales Gradle gefunden -- lade von GitHub (v${VERSION})..." + BASE="https://raw.githubusercontent.com/gradle/gradle/v${VERSION}" + mkdir -p gradle/wrapper + curl -fL "${BASE}/gradle/wrapper/gradle-wrapper.jar" -o "$WRAPPER_JAR" + curl -fL "${BASE}/gradlew" -o gradlew + chmod +x gradlew + echo "Gradle-Wrapper erfolgreich heruntergeladen." + fi +else + echo "Gradle-Wrapper bereits vorhanden." +fi + +if $DISTRIBUTE; then + TRAINING_ROOT="$(cd ../.. && pwd)" + echo "Verteile Gradle-Wrapper in: $TRAINING_ROOT" + find "$TRAINING_ROOT" -name "gradle-wrapper.properties" ! -path "$(pwd)/*" | while read -r props; do + dir="$(dirname "$props")" + target_jar="$dir/gradle-wrapper.jar" + target_gradlew="$(cd "$dir/../.." && pwd)/gradlew" + if [ ! -f "$target_jar" ]; then + cp "$WRAPPER_JAR" "$target_jar" + echo " JAR → $target_jar" + fi + if [ ! -f "$target_gradlew" ]; then + cp gradlew "$target_gradlew" + echo " gradlew → $target_gradlew" + fi + done +fi -- 2.39.5