diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-19 11:53:13 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-19 11:53:13 -0500 |
| commit | 3d1a88fa002942c5d5376250b705a6dd8252ab2e (patch) | |
| tree | 12e0ef0b377ff4cf43df90756f1f53a833df482f /scripts/testing/lib/vm-utils.sh | |
| parent | 6a96f03e419d4c17ffc920221a34d6210df47a6d (diff) | |
| download | archsetup-3d1a88fa002942c5d5376250b705a6dd8252ab2e.tar.gz archsetup-3d1a88fa002942c5d5376250b705a6dd8252ab2e.zip | |
fix(archsetup): log the real exit code from failed installs
`retry_install` was logging "error code: 0" for every retry-exhausted install (6 AUR packages on the 2026-05-16 run, 2 on the 2026-05-18 run). Root cause: `last_exit_code=$?` ran AFTER an `if eval ...; then return 0; fi` block. Bash defines an if-compound's exit status as zero when no condition tested true. With no else clause and a failing eval, that's exactly what happens, so `$?` captures 0 instead of eval's actual exit code.
Now eval runs unconditionally, `$?` lands in `last_exit_code` right after it, and the if just compares against the captured value. Same control flow, accurate codes in the summary. Verified with a small bash test: the old pattern reports `$?=0` after a failing if, the new pattern reports the real exit.
Diffstat (limited to 'scripts/testing/lib/vm-utils.sh')
0 files changed, 0 insertions, 0 deletions
