fix: discard-dist-on-failure keeps the step's status when its message cannot be written (closes #342)
With stderr closed, the wrapper's message write failed and set -e ended it with status 2; with stderr a pipe whose reader had gone, the write killed it with 141. The message is now written with SIGPIPE ignored and its failure ignored, after the step has run. An interrupt while a step runs now exits with 130 once the step has ended, removing nothing: under bash, a step that caught the interrupt and exited with a status, as check-censored does, used to get dist/ removed. A failed check-censored --require-dist still removes dist/. The header states both. Also the README bullet's missing period. Model: opus-5-5
This commit was merged in pull request #485.
This commit is contained in:
@@ -277,7 +277,7 @@ provide:
|
||||
step's exit status, saying on stderr that it did and why. Every step of
|
||||
`make build` runs through it; `make build-debug` runs none of them through it.
|
||||
A step that succeeds removes nothing, and a removal that cannot be completed
|
||||
is reported as loudly as one that was
|
||||
is reported as loudly as one that was.
|
||||
- `script/test-verify-build` — exercise every failure mode of
|
||||
`script/verify-build` against a fixture tree in a temp dir, asserting the exit
|
||||
status and the message of each, assert the state of `dist/` on disk after a
|
||||
|
||||
Reference in New Issue
Block a user