]> juplo.de Git - demos/kafka/training/commitdiff
bootstrap-gradle.sh: Bootstrap-Skript für Gradle-Wrapper-JAR hinzugefügt
authorKai Moritz <kai.milan.moritz@googlemail.com>
Fri, 29 May 2026 23:14:31 +0000 (23:14 +0000)
committerKai Moritz <kai.milan.moritz@googlemail.com>
Sun, 31 May 2026 12:48:26 +0000 (12:48 +0000)
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 <noreply@anthropic.com>
bootstrap-gradle.sh [new file with mode: 0644]

diff --git a/bootstrap-gradle.sh b/bootstrap-gradle.sh
new file mode 100644 (file)
index 0000000..3ddf5a6
--- /dev/null
@@ -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