diff options
| author | Paul Buetow <paul@buetow.org> | 2026-06-27 11:23:52 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-06-27 11:23:52 +0300 |
| commit | 75925e88fe6f15519490d37e79c93eaa2a3b12aa (patch) | |
| tree | 5effa70cf32a57497ffa74b4c4a5e2b2825f65bf /src/lib/action.source.sh | |
| parent | 9b16b1bc54213c7349ec9a44ba258466718c0f48 (diff) | |
ur0: remove dead status-capture/return path in main() and run_action()
Under "set -euo pipefail" the pattern
cmd
status=$?
if (( status != 0 )); then return "$status"; fi
is redundant for these positions: errexit already aborts on cmd's failure
with cmd's exact exit code before the status check could run. Replace it
with bare calls, dropping the now-pointless "local -i status=0" and the
status-capture boilerplate (and the stale comments describing it).
Deliberately NOT using "cmd || return $?" here: main -> run_action ->
run_configured_action -> generate_staged relies on errexit staying ACTIVE
so generate_staged's internal "set -e" parallel-job failure detection
fires. Putting the call in a "||" list suppresses inner errexit (the gotcha
documented in album.source.sh's splash-render note) and lets a failing job
sail past. Bare calls preserve the exact exit codes and step ordering.
bin/shuriken regenerated from src/ via "just build".
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'src/lib/action.source.sh')
| -rw-r--r-- | src/lib/action.source.sh | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/action.source.sh b/src/lib/action.source.sh index f3e6c2b..c667519 100644 --- a/src/lib/action.source.sh +++ b/src/lib/action.source.sh @@ -289,20 +289,22 @@ run_configured_action() { run_action() { local -r action="$SHURIKEN_CLI_ACTION" local requires_config - local -i status=0 if ! requires_config=$(action_spec_field "$action" 2); then usage exit 1 fi + # The chosen runner is a bare call under errexit (set -euo pipefail): a + # non-zero status aborts with that exact code, so no explicit status check is + # needed. We deliberately do NOT use "|| return $?" here: run_configured_action + # runs generate_staged, which relies on errexit staying active so its internal + # "set -e" parallel-job failure detection fires. A "||" list would suppress + # inner errexit and let a failing job sail past (see album.source.sh's + # splash-render note). if [ "$requires_config" = no ]; then run_unconfigured_action "$action" else run_configured_action fi - status=$? - if (( status != 0 )); then - return "$status" - fi } |
