Tiles-Progress: Stufe 4 zeigt echte planetiler-Phase statt Müll-ETA

This commit is contained in:
rene 2026-06-05 17:21:08 +02:00
parent 43b1e8026f
commit 827ea95191

View file

@ -22,12 +22,18 @@ if grep -q "Tiles gebaut" "$LOG" 2>/dev/null; then
fi fi
if grep -q "→ planetiler" "$LOG" 2>/dev/null; then if grep -q "→ planetiler" "$LOG" 2>/dev/null; then
start=$(_mtime "$B/dach.osm.pbf"); el=$((now - start)); [ $el -lt 1 ] && el=1 # Echte planetiler-Zeile parsen (ANSI/\r entfernen). Phasen: osm_pass1(nodes)→osm_pass2(ways/rels)→
pp=$(grep -oE "[0-9]{1,3}%" "$LOG" 2>/dev/null | tail -1 | tr -d '%') # write/archive(tiles). Eine ehrliche Gesamt-% gibt planetiler nicht her → Phase + Phasen-% zeigen,
if [ -n "$pp" ] && [ "$pp" -ge 0 ] 2>/dev/null && [ "$pp" -le 100 ] 2>/dev/null; then pct=$pp; else pct=$((el * 100 / EXP_PLAN_SEC)); fi # KEINE erfundene Zeit-ETA (war zuvor Quatsch wegen Log-Rauschen).
[ $pct -gt 95 ] && pct=95; [ $pct -lt 1 ] && pct=1 line=$(sed 's/\x1b\[[0-9;]*m//g; s/\r/\n/g' "$LOG" 2>/dev/null | grep -aE "^[0-9]+:[0-9]{2}:[0-9]{2} .*INF \[" | tail -1)
eta=$((el * (100 - pct) / pct)) phase=$(printf '%s' "$line" | sed -nE 's/.*INF \[([a-z0-9_]+)[]:].*/\1/p')
echo "STAGE=4 PCT=$pct LABEL=planetiler (Vektor-Tiles) $(_bar $pct) ${pct}% · ETA $(_eta $eta)"; exit 0 if printf '%s' "$line" | grep -q "ways:"; then
pct=$(printf '%s' "$line" | sed -nE 's/.*ways: \[[^]]*[[:space:]]([0-9]{1,3})%[[:space:]].*/\1/p')
else
pct=$(printf '%s' "$line" | grep -oE "[0-9]{1,3}%" | tail -1 | tr -d '%')
fi
[ -z "$pct" ] && pct=0
echo "STAGE=4 PCT=$pct LABEL=planetiler · ${phase:-läuft} $(_bar $pct) ${pct}% (Phasen-Fortschritt, Gesamt-ETA unsicher)"; exit 0
fi fi
if [ -f "$B/dach.osm.pbf" ]; then if [ -f "$B/dach.osm.pbf" ]; then