← 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
M scripts/gimmersta-romo-rolls/run.sh
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 →