From e1d0f12e3ba40d3fe29cc424c1214bb0835f36de Mon Sep 17 00:00:00 2001 From: Kai Moritz Date: Sun, 31 May 2026 14:29:25 +0000 Subject: [PATCH] =?utf8?q?copy.sh:=20--local-Schalter=20erg=C3=A4nzt,=20Ta?= =?utf8?q?g-Suffix=20auf=20--tag=3D=20umgestellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --local kopiert lokale Branch-HEADs ohne Remote-Aktualisierung. Der bisher positionale Tag-Suffix wird nun als --tag= übergeben. Co-Authored-By: Claude Sonnet 4.6 --- CLAUDE.md | 2 +- copy.sh | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 26367578..1b5b5292 100644 --- 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/` zurück. Mit Argument: auf Tag `--` | | `diff.sh` | Ohne Arg: lokaler Branch gegen `origin/`. Ein Arg: gegen `--`. Zwei Args: `--` gegen `--` | | `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=` 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=`: kopiert den jeweiligen Tag-Stand. Mit `--nexus-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=` 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 0cf6d6a4..441551a5 100755 --- 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= (ruft patch-nexus.sh auf die Vorlagen an) +# --tag=: Kopiert den jeweiligen Tag-Stand statt den aktuellen Branch-HEAD +# --local: Kopiert lokale Branch-HEADs ohne Remote-Aktualisierung +# --nexus-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="" -- 2.39.5