diff options
author | Taahir Ahmed <ahmed.taahir@gmail.com> | 2017-04-13 02:43:50 -0500 |
---|---|---|
committer | Taahir Ahmed <ahmed.taahir@gmail.com> | 2017-08-08 00:17:56 -0500 |
commit | 12354b8eb55fd76db73df6efab82aa083c7cfae4 (patch) | |
tree | 97ef848cee7491254f2135fcc01b8e8d6007ac4d /pkgs/build-support/setup-hooks/die.sh | |
parent | ba68231273bea4cba01413fd2a0e56d68db9234c (diff) | |
download | nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.tar nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.tar.gz nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.tar.bz2 nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.tar.lz nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.tar.xz nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.tar.zst nixlib-12354b8eb55fd76db73df6efab82aa083c7cfae4.zip |
dieHook: Add `die` utility function
Calling `die "Error message"` causes the current script to exit with an error, printing a backtrace
Diffstat (limited to 'pkgs/build-support/setup-hooks/die.sh')
-rw-r--r-- | pkgs/build-support/setup-hooks/die.sh | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pkgs/build-support/setup-hooks/die.sh b/pkgs/build-support/setup-hooks/die.sh new file mode 100644 index 000000000000..0db41e030f4c --- /dev/null +++ b/pkgs/build-support/setup-hooks/die.sh @@ -0,0 +1,21 @@ +# 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 +} |