#!/bin/bash
set -E
function handle_error {
local retval=$?
local line=$1
echo "Failed at $line: $BASH_COMMAND"
exit $retval
}
trap 'handle_error $LINENO' ERR
function fail {
echo "I expect the next line to be the failing line: $((LINENO + 1))"
command_that_fails
}
fail
IyEvYmluL2Jhc2gKCnNldCAtRQpmdW5jdGlvbiBoYW5kbGVfZXJyb3IgewogICAgbG9jYWwgcmV0dmFsPSQ/CiAgICBsb2NhbCBsaW5lPSQxCiAgICBlY2hvICJGYWlsZWQgYXQgJGxpbmU6ICRCQVNIX0NPTU1BTkQiCiAgICBleGl0ICRyZXR2YWwKfQp0cmFwICdoYW5kbGVfZXJyb3IgJExJTkVOTycgRVJSCgpmdW5jdGlvbiBmYWlsIHsKICAgIGVjaG8gIkkgZXhwZWN0IHRoZSBuZXh0IGxpbmUgdG8gYmUgdGhlIGZhaWxpbmcgbGluZTogJCgoTElORU5PICsgMSkpIgogICAgY29tbWFuZF90aGF0X2ZhaWxzCn0KCmZhaWwK