mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-14 22:04:27 +01:00
12354b8eb5
Calling `die "Error message"` causes the current script to exit with an error, printing a backtrace
21 lines
463 B
Bash
21 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
|
|
}
|