2012-04-27 18:28:28 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
set -o xtrace
|
|
|
|
|
2014-07-29 13:40:57 +01:00
|
|
|
if [ -z "${on_exit_hooks:-}" ]; then
|
|
|
|
on_exit_hooks=()
|
|
|
|
fi
|
2012-04-27 18:28:28 +01:00
|
|
|
|
|
|
|
on_exit()
|
|
|
|
{
|
2014-02-03 09:10:54 +09:00
|
|
|
for i in $(seq $((${#on_exit_hooks[*]} - 1)) -1 0); do
|
2012-04-27 18:28:28 +01:00
|
|
|
eval "${on_exit_hooks[$i]}"
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
add_on_exit()
|
|
|
|
{
|
|
|
|
local n=${#on_exit_hooks[*]}
|
|
|
|
on_exit_hooks[$n]="$*"
|
2014-02-03 09:10:54 +09:00
|
|
|
if [[ $n -eq 0 ]]; then
|
2012-04-27 18:28:28 +01:00
|
|
|
trap on_exit EXIT
|
|
|
|
fi
|
|
|
|
}
|