Use dedicated trap functions to avoid unsetting the trap when e.g. cleanup is called

This commit is contained in:
Pierre Schmitz 2012-10-03 12:35:40 +02:00
parent a26416dca3
commit 7228cc00e8
1 changed files with 12 additions and 4 deletions

View File

@ -62,8 +62,6 @@ setup_workdir() {
}
cleanup() {
trap - EXIT INT QUIT TERM HUP
[[ -n $WORKDIR ]] && rm -rf "$WORKDIR"
[[ $1 ]] && exit $1
}
@ -73,13 +71,23 @@ abort() {
cleanup 0
}
trap_abort() {
trap - EXIT INT QUIT TERM HUP
abort
}
trap_exit() {
trap - EXIT INT QUIT TERM HUP
cleanup 0
}
die() {
error "$*"
cleanup 1
}
trap abort INT QUIT TERM HUP
trap 'cleanup 0' EXIT
trap 'trap_abort' INT QUIT TERM HUP
trap 'trap_exit' EXIT
##
# usage : in_array( $needle, $haystack )