@@ -87,15 +87,43 @@ if $RUN_QUICK; then
8787 # Die CI formatiert nach jedem Push automatisch mit powrap und
8888 # committet das Ergebnis. Wer lokal nicht formatiert, bekommt beim
8989 # naechsten Rebase Konflikte in genau diesen Zeilen. Deshalb hier.
90- vorher=$( git -C " $REPO_ROOT " diff --name-only -- ' *.po' | wc -l | tr -d ' ' )
91- powrap -m 2> /dev/null
92- nachher=$( git -C " $REPO_ROOT " diff --name-only -- ' *.po' | wc -l | tr -d ' ' )
93- if [[ " $vorher " != " $nachher " ]]; then
94- echo " powrap hat weitere Dateien umbrochen -- bitte mit committen."
95- else
96- echo " OK -- Umbruch war bereits sauber."
97- fi
98- pass=$(( pass + 1 ))
90+ #
91+ # '--check' schreibt nichts, sondern liefert nur den Status:
92+ # 0 = nichts zu tun, 1 = wuerde umbrechen,
93+ # 2 = Datei(en) nicht formatierbar, 127 = msgcat fehlt.
94+ # Der frueher benutzte Vergleich der Anzahl geaenderter Dateien war
95+ # blind: eine bereits geaenderte Datei bleibt in der Liste, egal ob
96+ # powrap sie anfasst -- der Check meldete dann immer "sauber".
97+ powrap --check -q -m -C " $REPO_ROOT " > /dev/null 2>&1
98+ powrap_status=$?
99+ case $powrap_status in
100+ 0)
101+ echo " OK -- Umbruch ist sauber."
102+ pass=$(( pass + 1 ))
103+ ;;
104+ 1)
105+ echo " Umbruch nicht sauber -- powrap formatiert jetzt ..."
106+ powrap -q -m -C " $REPO_ROOT "
107+ echo " Diese Dateien bitte mit committen:"
108+ git -C " $REPO_ROOT " diff --name-only -- ' *.po' \
109+ | sed ' s/^/ /'
110+ pass=$(( pass + 1 ))
111+ ;;
112+ 2)
113+ echo " FEHLER: powrap konnte Dateien nicht formatieren."
114+ powrap -d -q -m -C " $REPO_ROOT " 2>&1 | sed ' s/^/ /'
115+ fail=$(( fail + 1 ))
116+ ;;
117+ 127)
118+ echo " msgcat nicht gefunden -- gehoert zu gettext"
119+ echo " (brew install gettext). Schritt uebersprungen."
120+ skip=$(( skip + 1 ))
121+ ;;
122+ * )
123+ echo " powrap endete mit unerwartetem Code $powrap_status ."
124+ fail=$(( fail + 1 ))
125+ ;;
126+ esac
99127 fi
100128
101129 log_section " 1b/5 msgfmt --check (Syntax)"
@@ -214,6 +242,15 @@ if $RUN_FULL; then
214242 fi
215243 fi
216244
245+ # Immer frisch bauen, so wie die CI. 'make html' baut sonst
246+ # inkrementell und haelt in seiner Umgebungsdatei unter Doc/build/
247+ # alte Werte fest -- zum Beispiel die Argumentnamen von
248+ # audit-event-Direktiven, die upstream umbenannt wurden. Das sieht dann
249+ # lokal wie ein Uebersetzungsfehler aus und ist keiner.
250+ echo " Raeume Sphinx-Cache auf (make clean) ..."
251+ (cd " $CPYTHON_SRC /Doc" && make clean) \
252+ || echo " Hinweis: 'make clean' fehlgeschlagen -- Build ist inkrementell."
253+
217254 LOCALE_DIR=" $CPYTHON_SRC /Doc/locales/de/LC_MESSAGES"
218255 echo " Verknuepfe aktuellen Uebersetzungsstand ($BRANCH ) nach $LOCALE_DIR ..."
219256 rm -rf " $LOCALE_DIR "
0 commit comments