summaryrefslogtreecommitdiff
path: root/src/lib/action.source.sh
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-06-27 11:23:52 +0300
committerPaul Buetow <paul@buetow.org>2026-06-27 11:23:52 +0300
commit75925e88fe6f15519490d37e79c93eaa2a3b12aa (patch)
tree5effa70cf32a57497ffa74b4c4a5e2b2825f65bf /src/lib/action.source.sh
parent9b16b1bc54213c7349ec9a44ba258466718c0f48 (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.sh12
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
}