--- /dev/null
+#!/bin/bash
+set -e
+
+# Passt Gradle-Setups an einen internen Nexus-Mirror an.
+# Aufruf (aus dem Zielverzeichnis, z.B. ../vorlagen/):
+#
+# patch-nexus.sh <nexus-maven-url> [--gradle-dist-url=<url>]
+#
+# Ohne --gradle-dist-url bleibt gradle-wrapper.properties unverändert.
+# Falls Gradle-Distributionen ebenfalls über Nexus bereitgestellt werden,
+# muss dort ein "raw proxy"-Repository auf services.gradle.org/distributions/
+# eingerichtet sein.
+
+if [ "$1" = "" ]; then
+ echo "Aufruf: $(basename "$0") <nexus-maven-url> [--gradle-dist-url=<url>]"
+ echo ""
+ echo "Beispiel:"
+ echo " $(basename "$0") https://nexus.example.com/repository/maven-public/"
+ echo " $(basename "$0") https://nexus.example.com/repository/maven-public/ \\"
+ echo " --gradle-dist-url=https://nexus.example.com/repository/gradle-distributions/"
+ exit 1
+fi
+
+NEXUS_URL="$1"
+GRADLE_DIST_URL=""
+for arg in "${@:2}"; do
+ case "$arg" in
+ --gradle-dist-url=*) GRADLE_DIST_URL="${arg#--gradle-dist-url=}" ;;
+ *) echo "Unbekannter Parameter: $arg"; exit 1 ;;
+ esac
+done
+
+TMP_REPO_BLOCK=$(mktemp)
+TMP_PLUGIN_BLOCK=$(mktemp)
+
+cat > "$TMP_REPO_BLOCK" <<EOF
+ maven {
+ url '$NEXUS_URL'
+ }
+ maven {
+ name 'gradle plugins'
+ url 'https://plugins.gradle.org/m2/'
+ }
+EOF
+
+cat > "$TMP_PLUGIN_BLOCK" <<EOF
+pluginManagement {
+ repositories {
+ maven {
+ name 'Nexus-Internal Access'
+ url '$NEXUS_URL'
+ }
+ }
+}
+
+EOF
+
+echo "Bearbeite build.gradle-Dateien..."
+for file in */*/build.gradle; do
+ [ -f "$file" ] || continue
+ echo " $file"
+ sed -i '/mavenCentral()/d' "$file"
+ if grep -q 'repositories *{' "$file"; then
+ awk -v insert="$(cat "$TMP_REPO_BLOCK")" '
+ BEGIN { added=0 }
+ /repositories[[:space:]]*{/ {
+ print
+ if (!added) { print insert; added=1; next }
+ }
+ { print }
+ ' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
+ else
+ cat "$TMP_REPO_BLOCK" "$file" > "$file.tmp" && mv "$file.tmp" "$file"
+ fi
+done
+
+echo "Bearbeite settings.gradle-Dateien..."
+for file in */*/settings.gradle; do
+ [ -f "$file" ] || continue
+ echo " $file"
+ if ! grep -q 'pluginManagement' "$file"; then
+ cat "$TMP_PLUGIN_BLOCK" "$file" > "$file.tmp" && mv "$file.tmp" "$file"
+ else
+ echo " (pluginManagement bereits vorhanden -- uebersprungen)"
+ fi
+done
+
+if [ "$GRADLE_DIST_URL" != "" ]; then
+ echo "Bearbeite gradle-wrapper.properties-Dateien..."
+ for file in */*/gradle/wrapper/gradle-wrapper.properties; do
+ [ -f "$file" ] || continue
+ echo " $file"
+ sed -i "s|distributionUrl=.*|distributionUrl=${GRADLE_DIST_URL}|" "$file"
+ done
+fi
+
+rm -f "$TMP_REPO_BLOCK" "$TMP_PLUGIN_BLOCK"
+echo "Fertig."
+++ /dev/null
-#!/bin/bash
-
-set -e
-
-# Konfiguration
-NEXUS_URL="https://m2repo.system.local/content/groups/full/"
-
-# Temp-Dateien
-TMP_REPO_BLOCK=$(mktemp)
-TMP_PLUGIN_BLOCK=$(mktemp)
-
-# repositories { ... } Block
-cat > "$TMP_REPO_BLOCK" <<EOF
- maven {
- url '$NEXUS_URL'
- }
- maven {
- name 'gradle plugins'
- url 'https://plugins.gradle.org/m2/'
- }
-EOF
-
-# pluginManagement { ... } Block
-cat > "$TMP_PLUGIN_BLOCK" <<EOF
-pluginManagement {
- repositories {
- maven {
- name 'Nexus-Internal Access'
- url '$NEXUS_URL'
- }
- }
-}
-
-EOF
-
-echo "🔧 Bearbeite build.gradle-Dateien..."
-
-for file in */*/build.gradle; do
- echo " → $file"
-
- # Entferne mavenCentral()
- sed -i '/mavenCentral()/d' "$file"
-
- if grep -q 'repositories *{' "$file"; then
- # Einfügen in bestehenden repositories-Block
- awk -v insert="$(cat "$TMP_REPO_BLOCK")" '
- BEGIN { added=0 }
- /repositories[[:space:]]*{/ {
- print
- if (!added) {
- print insert
- added=1
- next
- }
- }
- { print }
- ' "$file" > "$file.tmp" && mv -v "$file.tmp" "$file"
- else
- # Kein repositories-Block → Block am Anfang einfügen
- cat "$TMP_REPO_BLOCK" "$file" > "$file.tmp" && mv -v "$file.tmp" "$file"
- fi
-done
-
-echo "🔧 Bearbeite settings.gradle-Dateien..."
-
-for file in */*/settings.gradle; do
- echo " → $file"
-
- # Nur einfügen, wenn pluginManagement noch nicht enthalten
- if ! grep -q 'pluginManagement' "$file"; then
- cat "$TMP_PLUGIN_BLOCK" "$file" > "$file.tmp" && mv -v "$file.tmp" "$file"
- else
- echo " (pluginManagement bereits vorhanden – übersprungen)"
- fi
-done
-
-# Aufräumen
-rm -f "$TMP_REPO_BLOCK" "$TMP_PLUGIN_BLOCK"
-
-echo "✅ Fertig. Alle Dateien angepasst."
-