22 lines
463 B
Bash
22 lines
463 B
Bash
|
# Exit with backtrace and error message
|
||
|
#
|
||
|
# Usage: die "Error message"
|
||
|
die() {
|
||
|
# Let us be a little sloppy with errors, because otherwise the final
|
||
|
# invocation of `caller` below will cause the script to exit.
|
||
|
set +e
|
||
|
|
||
|
# Print our error message
|
||
|
printf "\nBuilder called die: %b\n" "$*"
|
||
|
printf "Backtrace:\n"
|
||
|
|
||
|
# Print a backtrace.
|
||
|
local frame=0
|
||
|
while caller $frame; do
|
||
|
((frame++));
|
||
|
done
|
||
|
printf "\n"
|
||
|
|
||
|
exit 1
|
||
|
}
|