| `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.
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
"${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=""