fix: vmprogress.sh: only a new step, a finished job or a FAIL is a change (not every PASS)

This commit is contained in:
theupriser committed 2026-09-29 17:50:41 +02:00
1 parent 5b867f8bd2
commit 37d65fc79d
1 file changed
+3 -2
+3 -2
View File
@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# Progress of test jobs, one line per change (for a monitor; see the progress-report skill). # Progress of test jobs, one line per change (for a monitor; see the progress-report skill).
# scripts/vmprogress.sh [--once] [job...] jobs: limine systemd-boot grub cli menu hw installer toggles (default all) # scripts/vmprogress.sh [--once] [job...] jobs: limine systemd-boot grub cli menu hw installer toggles (default all)
# Per job (a new install percentage alone doesn't count as a change): state (install NN% <stage> / <test step> / done / -), checks passed/expected, failed. # Per job (only a new step, a finished job or a FAIL counts as a change): state (install NN% <stage> / <test step> / done / -), checks passed/expected, failed.
# Line: "HH:MM total P/E F failed ;; job | state | P/E | F failed ;; ...". Prints nothing while nothing # Line: "HH:MM total P/E F failed ;; job | state | P/E | F failed ;; ...". Prints nothing while nothing
# changes (checked every 30 s), "ALLDONE" and exits once every started job has its summary line. # changes (checked every 30 s), "ALLDONE" and exits once every started job has its summary line.
# Expected counts: the last complete run of each (AGENTS.md "State"); update them when checks are added. # Expected counts: the last complete run of each (AGENTS.md "State"); update them when checks are added.
@@ -38,7 +38,8 @@ while true; do
line+=" ;; $j | $st | $p/${expect[$j]:-?} | $f failed" line+=" ;; $j | $st | $p/${expect[$j]:-?} | $f failed"
done done
cur="total $tp/$te $tf failed$line" cur="total $tp/$te $tf failed$line"
key="$(sed -E 's/install [0-9]+% /install /g' <<< "$cur")" # a new install percentage alone is no change # A change is a new stage/step, a job finishing or a FAIL: not a new install percentage or PASS count.
key="$(sed -E 's/install [0-9]+% /install /g; s/\| [0-9]+\/[0-9?]+ \|/|/g; s/^total [0-9]+\/[0-9]+ //' <<< "$cur")"
[[ "$key" != "$prev" ]] && { echo "$(date +%H:%M) $cur"; prev="$key"; } [[ "$key" != "$prev" ]] && { echo "$(date +%H:%M) $cur"; prev="$key"; }
$once && exit 0 $once && exit 0
[[ $running -eq 0 ]] && { echo ALLDONE; exit 0; } [[ $running -eq 0 ]] && { echo ALLDONE; exit 0; }