Skip to content

Instantly share code, notes, and snippets.

@neilellis
Forked from ahendrix/gist:7030300
Last active August 29, 2015 14:06
Show Gist options
  • Save neilellis/330df5feed0fe7ea27a2 to your computer and use it in GitHub Desktop.
Save neilellis/330df5feed0fe7ea27a2 to your computer and use it in GitHub Desktop.
function errexit() {
local err=$?
set +o xtrace
local code="${1:-1}"
echo "Error in ${BASH_SOURCE[1]}:${BASH_LINENO[0]}. '${BASH_COMMAND}' exited with status $err"
# Print out the stack trace described by $function_stack
if [ ${#FUNCNAME[@]} -gt 2 ]
then
echo "Call tree:"
for ((i=1;i<${#FUNCNAME[@]}-1;i++))
do
echo " $i: ${BASH_SOURCE[$i+1]}:${BASH_LINENO[$i]} ${FUNCNAME[$i]}(...)"
done
fi
echo "Exiting with status ${code}"
exit "${code}"
}
# trap ERR to provide an error handler whenever a command exits nonzero
# this is a more verbose version of set -o errexit
trap 'errexit' ERR
# setting errtrace allows our ERR trap handler to be propagated to functions,
# expansions and subshells
set -o errtrace
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment