diff options
| author | Paul Buetow <paul@buetow.org> | 2026-06-12 15:15:38 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-06-12 15:15:38 +0300 |
| commit | 81a3be6379198c697de2f8639dcaa1cdc9d66a53 (patch) | |
| tree | 603b8f4f51b025f268664008b2b208a292324c68 /src/lib/template.source.sh | |
| parent | 6aa19aa81090898c942f44677867b1abcdb06589 (diff) | |
Fix remaining errexit masking for bm0
Diffstat (limited to 'src/lib/template.source.sh')
| -rw-r--r-- | src/lib/template.source.sh | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/lib/template.source.sh b/src/lib/template.source.sh index 58cdfa8..8ab87b2 100644 --- a/src/lib/template.source.sh +++ b/src/lib/template.source.sh @@ -296,6 +296,7 @@ source_template_file() { local -r output_path="$1"; shift local -r render_vars_name="$1"; shift local context_file + local restore_errexit=no local -i status=0 context_file=$(mktemp) @@ -304,14 +305,20 @@ source_template_file() { return "$status" fi - if { - serialize_template_render_context "$render_vars_name" \ - && + if [[ "$-" == *e* ]]; then + restore_errexit=yes + set +e + fi + ( + set -e + serialize_template_render_context "$render_vars_name" printf 'unset BASH_ENV\n' - } > "$context_file"; then - status=0 - else - status=$? + ) > "$context_file" + status=$? + if [ "$restore_errexit" = yes ]; then + set -e + fi + if (( status != 0 )); then rm -f "$context_file" return "$status" fi |
