Skip to content

feat: support set +e / set +o errexit#171

Merged
bartlomieju merged 10 commits into
denoland:mainfrom
dsherret:feat_support_set_e
May 20, 2026
Merged

feat: support set +e / set +o errexit#171
bartlomieju merged 10 commits into
denoland:mainfrom
dsherret:feat_support_set_e

Conversation

@dsherret
Copy link
Copy Markdown
Contributor

@dsherret dsherret commented Apr 22, 2026

No description provided.

Replace the opaque `is_async` boolean with two orthogonal flags —
`is_async` (was `&`) and `ends_line` (followed by `\n` / `\r\n`) — so
consumers can apply different semantics per boundary. In particular,
`cmd &\nnext` is now represented as `is_async: true, ends_line: true`
instead of losing the newline.
Abort a sequential list at the first non-zero command when the errexit
option is enabled. Failure inside `&&` / `||` chains or pipelines is
unaffected, matching bash semantics.
@bartlomieju bartlomieju merged commit 95d72ed into denoland:main May 20, 2026
4 checks passed
bartlomieju added a commit to denoland/deno that referenced this pull request May 20, 2026
Picks up two upstream changes in deno_task_shell: support for `set -e`
/ `set +e` (and the `set -o errexit` long form), which aborts the
surrounding sequential list on the first non-zero exit, and the POSIX
null command `:` as a builtin.

See denoland/deno_task_shell#171 and denoland/deno_task_shell#175.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants