blob: f011960c97e628adfb279b4bbe208c37950cbf33 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/bin/bash
# Make sure this only gets included/executed once. Unfortunately, bash doesn't
# usually distinguish between values that are unset and values that are null.
# To work around that, we declare TRAPFUNCS to be a one-element array right at
# the start, but that one element is : which is defined to do nothing.
if [ ${#TRAPFUNCS[@]} = 0 ]; then
TRAPFUNCS=(:)
push_trapfunc () {
TRAPFUNCS[${#TRAPFUNCS[@]}]="$@"
}
execute_trapfuncs () {
for i in "${TRAPFUNCS[@]}"; do
$i
done
}
trap execute_trapfuncs EXIT
fi
|