#!/usr/bin/env bash
# Waiter-chain: wait for the orphaned #281 leg (pid $1), redo its treqs with a PATH that has traceable-reqs, then gate the rest sequentially. Verdicts live in exit files only.
WAITPID="${1:?orphan pid}"
export PATH="$HOME/.cargo/bin:$HOME/.local/bin:$PATH"
LOCK=$HOME/gate-294-doyle/chain.lock; mkdir -p $HOME/gate-294-doyle
if ! mkdir "$LOCK" 2>/dev/null; then echo CHAIN_LOCKED; exit 99; fi
trap 'rmdir "$LOCK"' EXIT
echo "=== WAIT for pid $WAITPID start $(date -u +%FT%TZ)"
while kill -0 "$WAITPID" 2>/dev/null; do sleep 15; done
echo "=== WAIT done $(date -u +%FT%TZ)"
O281=$HOME/gate-294-doyle/gate-294-281-0966ed715e036a9ea5a984f5b96accec6083e9cc
echo "orphan exits:"; for f in "$O281"/*.exit; do printf '%s=%s\n' "$(basename "$f" .exit)" "$(cat "$f")"; done
[ -f "$O281/treqs.raw" ] && mv "$O281/treqs.raw" "$O281/treqs-orphan.raw" && mv "$O281/treqs.exit" "$O281/treqs-orphan.exit"
cd $HOME/spt-core-gate-w2 || exit 90
echo "HEAD_now=$(git rev-parse HEAD)"; [ "$(git rev-parse HEAD)" = "0966ed715e036a9ea5a984f5b96accec6083e9cc" ] || { echo HEAD_MISMATCH_FOR_281_TREQS; }
traceable-reqs check > "$O281/treqs.raw" 2>&1; echo $? > "$O281/treqs.exit"; echo "281 treqs exit $(cat "$O281/treqs.exit")"
for pair in fc5887b147ef313401b37c1047328f90fe1029da:gate-294-285 fb18e94bd70f3551a8ae6457f455b455fb7c6720:gate-294-287 19a9097956de0db898eaeb3a7dc4765189ade874:gate-294-286 9547cd491d59b145701ea120fdc37ab0b5c942da:gate-294-295; do
  sha=${pair%%:*}; label=${pair##*:}
  echo "=== CHAIN $label $sha start $(date -u +%FT%TZ)"
  bash $HOME/member-gate-kitsubito-v2.sh "$sha" "$label"; echo "chain_rc=$?"
  echo "=== CHAIN $label end $(date -u +%FT%TZ)"
done
echo CHAIN_DONE
