You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# shellcheck shell=bash
|
|
|
|
if [ -n "$__panic_sh__" ]; then return; fi
|
|
|
|
__panic_sh__=$(date)
|
|
|
|
|
|
|
|
source "error_msg.sh" || exit 1
|
|
|
|
|
|
|
|
declare __common_did_dump_callstack=false
|
|
|
|
|
|
|
|
__common_dump_callstack() {
|
|
|
|
echo "Call Stack:"
|
|
|
|
# Skip the dump_bash_stack and error_msg_frames
|
|
|
|
for ((i = 2; i < ${#FUNCNAME[@]}; i++)); do
|
|
|
|
printf "\t%d - %s\n" "$((i - 2))" "${FUNCNAME[i]} (${BASH_SOURCE[i + 1]}:${BASH_LINENO[i + 1]})"
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
# Public API
|
|
|
|
panic() {
|
|
|
|
error_msg "${@}"
|
|
|
|
[[ "$__common_did_dump_callstack" == false ]] && {
|
|
|
|
__common_dump_callstack
|
|
|
|
__common_did_dump_callstack=true
|
|
|
|
}
|
|
|
|
}
|