Von Chat-GPT - AuszufĂĽhren in z.B. `vorlagen`
authorKai Moritz <kai@juplo.de>
Thu, 15 May 2025 05:19:28 +0000 (07:19 +0200)
committerKai Moritz <kai@juplo.de>
Thu, 15 May 2025 05:19:28 +0000 (07:19 +0200)
patch_gradle_for_si_nexus.sh [new file with mode: 0755]

diff --git a/patch_gradle_for_si_nexus.sh b/patch_gradle_for_si_nexus.sh
new file mode 100755 (executable)
index 0000000..25505a1
--- /dev/null
@@ -0,0 +1,81 @@
+#!/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 "$file.tmp" "$file"
+    else
+        # Kein repositories-Block â†’ Block am Anfang einfĂĽgen
+        cat "$TMP_REPO_BLOCK" "$file" > "$file.tmp" && mv "$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 "$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."
+