fix(update-all): run build-modlist.py under python >=3.11

The host's default python3 may predate stdlib tomllib (cochi/Ubuntu 22.04 ships
3.10), so the shebang-resolved python3 failed the version guard and strict-halt
aborted the run. Pick the first python3.11+ interpreter instead.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 00:05:03 +02:00
parent 3af14d0144
commit 37d21cacf9

View File

@@ -58,8 +58,19 @@ step "sync-server-mods.sh"
tooling/sync-server-mods.sh tooling/sync-server-mods.sh
# ── 3. regenerate the landing mod list (mods.json + logos) ────────── # ── 3. regenerate the landing mod list (mods.json + logos) ──────────
# build-modlist.py needs stdlib tomllib (Python >=3.11). The host's default
# `python3` may be older (e.g. Ubuntu 22.04 ships 3.10), so pick the first
# interpreter that satisfies it rather than relying on the shebang.
step "build-modlist.py" step "build-modlist.py"
tooling/build-modlist.py PY=""
for p in python3.13 python3.12 python3.11 python3; do
command -v "$p" >/dev/null 2>&1 || continue
if "$p" -c 'import sys; raise SystemExit(0 if sys.version_info >= (3, 11) else 1)' 2>/dev/null; then
PY="$p"; break
fi
done
[ -n "$PY" ] || { echo "no python >=3.11 found (build-modlist.py needs stdlib tomllib)" >&2; exit 1; }
"$PY" tooling/build-modlist.py
# ── 4. rebuild the landing site into www/ (gitignored — pull never # ── 4. rebuild the landing site into www/ (gitignored — pull never
# updates it, so it must be rebuilt every run) ───────────────── # updates it, so it must be rebuilt every run) ─────────────────