From: Kai Moritz Date: Sun, 31 May 2026 13:55:45 +0000 (+0000) Subject: copy.sh, init-exercises.sh: Ausgabeverzeichnisse unter ../training-exercises/ zusamme... X-Git-Tag: scripting--2026-06-04~20 X-Git-Url: http://juplo.de/gitweb/?a=commitdiff_plain;h=487922ff9de30beff98bb9119ff8fb832911cecc;p=demos%2Fkafka%2Ftraining copy.sh, init-exercises.sh: Ausgabeverzeichnisse unter ../training-exercises/ zusammenfassen Co-Authored-By: Claude Sonnet 4.6 --- diff --git a/CLAUDE.md b/CLAUDE.md index 15d5486b..26367578 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -16,9 +16,9 @@ Branch-Namen kodieren ihre Rolle durch Suffixe. `copy.sh` wertet diese Suffixe a | Suffix | Bedeutung | Zielverzeichnis (`copy.sh`) | |--------|-----------|----------------------------| -| *(keiner)* | Lösung / Musterlösung | `../spickzettel/` | -| `--vorlage` | Übungsvorlage für Teilnehmer | `../vorlagen/` | -| `--livecoding` | Startpunkt für Live-Coding-Demo (Schritt 0) | `../livecoding/` | +| *(keiner)* | Lösung / Musterlösung | `../training-exercises/spickzettel/` | +| `--vorlage` | Übungsvorlage für Teilnehmer | `../training-exercises/vorlagen/` | +| `--livecoding` | Startpunkt für Live-Coding-Demo (Schritt 0) | `../training-exercises/livecoding/` | | `--livecoding--schritte` | Schrittweise Entwicklung einer Live-Coding-Session | *(wird nicht kopiert)* | Branch-Name-Präfixe gruppieren Übungen nach Thema: @@ -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 `../vorlagen/`, `../livecoding/` oder `../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. 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 | | `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. @@ -224,14 +224,14 @@ Dieser Branch enthält zwei zusätzliche Skripte für die Schulungs-Initialisier | Skript | Zweck | |--------|-------| -| `init-exercises.sh` | Initialisiert die mit `copy.sh` kopierten Übungsverzeichnisse (`vorlagen/`, `livecoding/`, `spickzettel/`). Standard: `--maven` (entfernt Gradle-Artefakte). Mit `--gradle`: verteilt Gradle-Wrapper (JAR, properties, gradlew) und entfernt Maven-Artefakte. Beide Modi löschen Build-Ausgaben und Caches. Scheitert mit Fehler, wenn `--gradle` verwendet wird, aber der Wrapper noch nicht bereit ist — dann zuerst `README-gradle.sh` ausführen. | +| `init-exercises.sh` | Initialisiert die mit `copy.sh` kopierten Übungsverzeichnisse (`training-exercises/vorlagen/`, `training-exercises/livecoding/`, `training-exercises/spickzettel/`). Standard: `--maven` (entfernt Gradle-Artefakte). Mit `--gradle`: verteilt Gradle-Wrapper (JAR, properties, gradlew) und entfernt Maven-Artefakte. Beide Modi löschen Build-Ausgaben und Caches. Scheitert mit Fehler, wenn `--gradle` verwendet wird, aber der Wrapper noch nicht bereit ist — dann zuerst `README-gradle.sh` ausführen. | | `README-gradle.sh` | Technik-Check für Gradle: stellt Gradle-Wrapper bereit (lädt ihn herunter, falls fehlend) und führt Build-Test durch. Ohne Schalter: scheitert laut, wenn installierte Version nicht zur benötigten passt. Mit `--update`: ersetzt veralteten Wrapper durch die benötigte Version. | `gradle-wrapper.jar` ist absichtlich nicht im Repository (wird von Unternehmens-Mail-Filtern blockiert). `gradlew` und `gradle/wrapper/gradle-wrapper.properties` sind versioniert und definieren die maßgebliche Gradle-Version für alle Übungen der Schulung. Der Versions-Marker `gradle/wrapper/.gradle-version` ist gitignoriert. ### TGZ-Verzeichnisstruktur -Branch-Namen bilden auch die Verzeichnisstruktur im verteilten TGZ ab: Der Branch `springkafka/technik-check--vorlage` wird als `springkafka/technik-check/` extrahiert. Von dort ist `../..` das Trainings-Wurzelverzeichnis — so findet `init-exercises.sh` alle Übungsverzeichnisse korrekt. +Branch-Namen bilden auch die Verzeichnisstruktur im verteilten TGZ ab: Der Branch `springkafka/technik-check--vorlage` wird als `springkafka/technik-check/` extrahiert. Von dort ist `../..` das Vorlagen-Wurzelverzeichnis (`training-exercises/vorlagen/`) — `init-exercises.sh` berechnet `livecoding` und `spickzettel` als Geschwisterordner davon und findet so alle Übungsverzeichnisse korrekt. ## Einen neuen Übungs-Branch hinzufügen diff --git a/copy.sh b/copy.sh index ddd1d199..0cf6d6a4 100755 --- a/copy.sh +++ b/copy.sh @@ -1,9 +1,9 @@ #!/bin/bash set -e -VORLAGEN=../vorlagen -LIVECODING=../livecoding -MUSTERLOESUNGEN=../spickzettel +VORLAGEN=../training-exercises/vorlagen +LIVECODING=../training-exercises/livecoding +MUSTERLOESUNGEN=../training-exercises/spickzettel source branches.sh