summaryrefslogtreecommitdiffstats
path: root/maintainers/scripts
diff options
context:
space:
mode:
authorErik Arvstedt <erik.arvstedt@gmail.com>2022-07-02 12:51:12 +0200
committerErik Arvstedt <erik.arvstedt@gmail.com>2022-07-02 16:13:12 +0200
commit3f54dfa4755613dbd3098814a9ab07cb977ca347 (patch)
treede3dc05086dc36c9c190403ae7e817f105914d65 /maintainers/scripts
parentbb7867f1e5080de1dfff80e2f7d5a4be49889e23 (diff)
treewide: fix bash exit handlers
Transform exit handlers of the form trap cleanup EXIT [INT] [TERM] [QUIT] [HUP] [ERR] (where cleanup is idempotent) to trap cleanup EXIT This fixes a common bash antipattern. Each of the above signals causes the script to exit. For each signal, bash first handles the signal by running `cleanup` and then runs `cleanup` again when handling EXIT. (Exception: `vscode/*` prevents the second run of `cleanup` by removing the trap in cleanup`). Simplify the cleanup logic by just trapping exit, which is always run when the script exits due to any of the above signals. Note: In case of borgbackup, the exit handler is not idempotent, but just trapping EXIT guarantees that it's only run once.
Diffstat (limited to 'maintainers/scripts')
-rwxr-xr-xmaintainers/scripts/rebuild-amount.sh2
1 files changed, 1 insertions, 1 deletions
diff --git a/maintainers/scripts/rebuild-amount.sh b/maintainers/scripts/rebuild-amount.sh
index bedd352db5f3..32810f6b98c0 100755
--- a/maintainers/scripts/rebuild-amount.sh
+++ b/maintainers/scripts/rebuild-amount.sh
@@ -35,7 +35,7 @@ toRemove=()
cleanup() {
rm -rf "${toRemove[@]}"
}
-trap cleanup EXIT SIGINT SIGQUIT ERR
+trap cleanup EXIT
MKTEMP='mktemp --tmpdir nix-rebuild-amount-XXXXXXXX'