#!/usr/bin/env bash
# Detached pipeline: variants first (all of them), then the resumable model run. Re-running this script resumes.
set -uo pipefail
PKG=<workdir>; S=~/scratch/需求方-coding-mllm-probe
cd $PKG
if [ ! -f work/data/variants.json ]; then
  nice -n 15 ionice -c 3 $S/venv/bin/python work/code/02_make_variants.py --generate 0.25,0.5 --control bpg_q51 \
     --bpgenc $S/libbpg-0.9.8/bpgenc --bpgdec $S/libbpg-0.9.8/bpgdec --png_out $S/variants >> work/logs/02_make_variants.log 2>&1 || { echo "variants FAILED" >> work/logs/02_make_variants.log; exit 1; }
fi
n=$(find $S/variants -name '*.png' -path '*/variants/*/*' ! -path '*/bpg_*/src.png' | grep -v '/bpg_[a-z0-9]*/x.png' | wc -l)
echo "$(date -u +%FT%TZ) png count $n" >> work/logs/02_make_variants.log
nice -n 15 $S/venv/bin/python work/code/03_run_vlm.py work/code/run_config.json >> work/logs/03_run_vlm_main.stdout 2>&1
rc=$?
# $(date) 的命令替换会先执行并把 $? 重置成 0，所以原来这行永远报 exit 0，
# 2026-09-17 那次 OOM 被杀（真实退出码 137）就是这样被伪装成正常收尾的。
echo "$(date -u +%FT%TZ) run_all exit $rc" >> work/logs/03_run_vlm_main.stdout
