]> juplo.de Git - demos/kafka/training/commitdiff
copy.sh: --local-Schalter ergänzt, Tag-Suffix auf --tag= umgestellt
authorKai Moritz <kai.milan.moritz@googlemail.com>
Sun, 31 May 2026 14:29:25 +0000 (14:29 +0000)
committerKai Moritz <kai.milan.moritz@googlemail.com>
Sun, 31 May 2026 14:29:25 +0000 (14:29 +0000)
--local kopiert lokale Branch-HEADs ohne Remote-Aktualisierung.
Der bisher positionale Tag-Suffix wird nun als --tag=<suffix> übergeben.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CLAUDE.md
copy.sh

index 26367578c274cd7396a6728bdb3ff32cc03bd818..1b5b5292f7bad7acc5cf08b98060d9bb4c326bb7 100644 (file)
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -213,7 +213,7 @@ Alle Skripte laden zuerst `branches.sh`, das die vollständige Branch-Liste defi
 | `reset.sh` | Ohne Argument: setzt alle Branches auf `origin/<branch>` zurück. Mit Argument: auf Tag `<branch>--<prefix>` |
 | `diff.sh` | Ohne Arg: lokaler Branch gegen `origin/<branch>`. Ein Arg: gegen `<branch>--<suffix>`. Zwei Args: `<branch>--<suffix1>` gegen `<branch>--<suffix2>` |
 | `build.sh` | Baut alle Branches (erkennt Maven/Gradle automatisch); `--vorlage`-Branches werden übersprungen. Mit `--publish`: Docker-Images veröffentlichen |
-| `copy.sh` | Kopiert Branches anhand ihres Suffix in `../training-exercises/vorlagen/`, `../training-exercises/livecoding/` oder `../training-exercises/spickzettel/` (siehe Suffix-Tabelle oben); `--livecoding--schritte`-Branches werden übersprungen. `rsync --delete` ist immer aktiv. Verzeichnisse zu nicht mehr gelisteten Branches werden automatisch bereinigt. Optionaler Tag-Suffix als erstes Argument kopiert den jeweiligen Tag-Stand. Mit `--nexus-url=<url>` werden Gradle-Setups anschließend für einen internen Nexus gepatcht |
+| `copy.sh` | Kopiert Branches anhand ihres Suffix in `../training-exercises/vorlagen/`, `../training-exercises/livecoding/` oder `../training-exercises/spickzettel/` (siehe Suffix-Tabelle oben); `--livecoding--schritte`-Branches werden übersprungen. `rsync --delete` ist immer aktiv. Verzeichnisse zu nicht mehr gelisteten Branches werden automatisch bereinigt. Ohne Schalter: aktualisiert zuerst alle Branches auf Remote-Stand (erfordert Remote-Zugriff). Mit `--local`: kopiert lokale Branch-HEADs ohne Remote-Aktualisierung. Mit `--tag=<suffix>`: kopiert den jeweiligen Tag-Stand. Mit `--nexus-url=<url>` werden Gradle-Setups anschließend für einen internen Nexus gepatcht |
 | `patch-nexus.sh` | Patcht `build.gradle` (Nexus als Repository), `settings.gradle` (pluginManagement) und optional mit `--gradle-dist-url=<url>` auch `gradle-wrapper.properties`. Wird aus dem Zielverzeichnis (`../vorlagen/`) aufgerufen |
 
 Nach Massenoperationen immer zu `scripting` zurückkehren — Skripte führen am Ende `git checkout scripting` aus.
diff --git a/copy.sh b/copy.sh
index 0cf6d6a4576f43333e8d6da61e6fa5ee9fda624c..441551a5d1ec9d768d9ffc57f073e24c57b8b632 100755 (executable)
--- a/copy.sh
+++ b/copy.sh
@@ -7,15 +7,18 @@ MUSTERLOESUNGEN=../training-exercises/spickzettel
 
 source branches.sh
 
-# Optionaler Parameter: Tag-Suffix (kopiert dann den jeweiligen Tag-Stand statt den aktuellen Branch)
-# Optionaler Parameter: --nexus-url=<url> (ruft patch-nexus.sh auf die Vorlagen an)
+# --tag=<suffix>:      Kopiert den jeweiligen Tag-Stand statt den aktuellen Branch-HEAD
+# --local:             Kopiert lokale Branch-HEADs ohne Remote-Aktualisierung
+# --nexus-url=<url>:   Ruft patch-nexus.sh auf die Vorlagen an
 TAG_SUFFIX=""
 NEXUS_URL=""
+LOCAL=false
 for arg in "$@"; do
   case "$arg" in
+    --tag=*)       TAG_SUFFIX="${arg#--tag=}" ;;
     --nexus-url=*) NEXUS_URL="${arg#--nexus-url=}" ;;
-    --*) echo "Unbekannter Parameter: $arg"; exit 1 ;;
-    *) TAG_SUFFIX="$arg" ;;
+    --local)       LOCAL=true ;;
+    *) echo "Unbekannter Parameter: $arg"; exit 1 ;;
   esac
 done
 
@@ -52,7 +55,7 @@ sync_to() {
   "${RSYNC_OPTS[@]}" . "$1"
 }
 
-if [ "$TAG_SUFFIX" = "" ]; then
+if [ "$TAG_SUFFIX" = "" ] && ! $LOCAL; then
   echo "Kein Tag-Suffix angegeben — prüfe einheitliche Tags vor der Aktualisierung auf Remote-Stände..."
 
   _common_suffixes=""