[object Object]

← back to Designerwallcoverings

TK-11856 rc-propagation (SHOPIFY): gimmersta-romo-rolls run.sh propagates first failed roll-builder rc

eebb45267f5f7abac63846959e479ad063a20c7c · 2026-09-26 09:22:13 -0700 · Steve

Exit-code ONLY, no behavior change (Steve ruling 2026-09-26 Q1/Q2): every step still runs as
before; the wrapper now exits with the first nonzero rc of its side-effecting step(s) instead of
swallowing it, so cron-fire-canary's exit corroboration can see a failed run. No heartbeat file added.
Revert: git -C /Users/macstudio3/Projects/designerwallcoverings revert <this sha>

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YaiWjfgEuKQLTb5cdDreS3

Files touched

Diff

commit eebb45267f5f7abac63846959e479ad063a20c7c
Author: Steve <steve@designerwallcoverings.com>
Date:   Sat Sep 26 09:22:13 2026 -0700

    TK-11856 rc-propagation (SHOPIFY): gimmersta-romo-rolls run.sh propagates first failed roll-builder rc
    
    Exit-code ONLY, no behavior change (Steve ruling 2026-09-26 Q1/Q2): every step still runs as
    before; the wrapper now exits with the first nonzero rc of its side-effecting step(s) instead of
    swallowing it, so cron-fire-canary's exit corroboration can see a failed run. No heartbeat file added.
    Revert: git -C /Users/macstudio3/Projects/designerwallcoverings revert <this sha>
    
    Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01YaiWjfgEuKQLTb5cdDreS3
---
 scripts/gimmersta-romo-rolls/run.sh | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/scripts/gimmersta-romo-rolls/run.sh b/scripts/gimmersta-romo-rolls/run.sh
index 9789c5a..c1f3562 100755
--- a/scripts/gimmersta-romo-rolls/run.sh
+++ b/scripts/gimmersta-romo-rolls/run.sh
@@ -38,11 +38,17 @@ echo "[$(ts)] roll budget=$GRANT — clamping all builders to it (each does its
 # "Kirkby Design"/"Zinc Textile", not "Kirkby"/"Zinc"). Live buildable backlog is small (~10);
 # most Romo products already carry roll variants. Sandberg: 312 website_2026 fresh costs (599
 # stale held). High ROLL_CAP — budget.cjs is the real limiter; each builder stops at the slice.
+# TK-11856 rc-propagation (exit-code ONLY, no behavior change): every builder still runs even if an
+# earlier one fails (the `||` keeps set -e from aborting, exactly as before); we only REMEMBER the
+# first nonzero builder rc and exit with it at the end, so a failed Shopify roll-build is a nonzero
+# launchd exit instead of exit 0. set -e-safe: the if-forms below always return 0. Undo: git revert.
+FIRST_RC=0
 ROMO_VENDORS=("Villa Nova" "Romo" "Black Edition" "Kirkby Design" "Zinc Textile" "Mark Alexander")
 for V in "${ROMO_VENDORS[@]}"; do
   echo "[$(ts)] --- build-romo-rolls.mjs ($V) ---" >> "$LOG"
-  ROLL_VENDOR="$V" ROLL_CAP="$GRANT" $NODE "$ROOT/build-romo-rolls.mjs" >> "$LOG" 2>&1 || echo "[$(ts)] romo($V) exited $?" >> "$LOG"
+  ROLL_VENDOR="$V" ROLL_CAP="$GRANT" $NODE "$ROOT/build-romo-rolls.mjs" >> "$LOG" 2>&1 || { r=$?; echo "[$(ts)] romo($V) exited $r" >> "$LOG"; if [ "$FIRST_RC" -eq 0 ]; then FIRST_RC=$r; fi; }
 done
 echo "[$(ts)] --- build-sandberg-rolls.mjs ---" >> "$LOG"
-ROLL_CAP="$GRANT" $NODE "$ROOT/build-sandberg-rolls.mjs" >> "$LOG" 2>&1 || echo "[$(ts)] sandberg exited $?" >> "$LOG"
-echo "[$(ts)] === run complete ===" >> "$LOG"
+ROLL_CAP="$GRANT" $NODE "$ROOT/build-sandberg-rolls.mjs" >> "$LOG" 2>&1 || { r=$?; echo "[$(ts)] sandberg exited $r" >> "$LOG"; if [ "$FIRST_RC" -eq 0 ]; then FIRST_RC=$r; fi; }
+echo "[$(ts)] === run complete rc=$FIRST_RC ===" >> "$LOG"
+exit "$FIRST_RC"

← 2b739ed TK-12333: drop Scalamandre — unpublish list 4409 rows, dw-sh  ·  back to Designerwallcoverings  ·  auto-data-snapshot: 2026-09-26T09:21:27 (1 data files) — scr d1f4ede →