|
|
|
@ -114,8 +114,10 @@ function tty_ansi { |
|
|
|
|
|
|
|
function print_miaou_error { |
|
|
|
local source="$1" line="$2" code="$3" type="$4" payload="${5:-}" |
|
|
|
>&2 echo -n "${source}: line ${line}: miaou_error: ${type} ${code}" |
|
|
|
[[ -n "$payload" ]] && >&2 echo " payload: ${payload}" || >&2 echo |
|
|
|
local message |
|
|
|
message="${source}: line ${line}: miaou_error: ${type} ${code}" |
|
|
|
[[ -n "$payload" ]] && message+=" payload: ${payload}" |
|
|
|
[[ -v tmp_error ]] && miaou_debug "tmp_error=${#tmp_error[@]}" && tmp_error+=("$message") || >&2 echo "$message" |
|
|
|
} |
|
|
|
|
|
|
|
function on_error { |
|
|
|
@ -194,7 +196,7 @@ function on_pipe { |
|
|
|
} |
|
|
|
|
|
|
|
function dump_stderr { |
|
|
|
miaou_debug '<stderr>' |
|
|
|
miaou_debug "<stderr count=${#tmp_error[@]}>" |
|
|
|
tty_ansi FG_LIGHTBLUE |
|
|
|
for i in "${tmp_error[@]}"; do echo "$i"; done |
|
|
|
tty_ansi RESET |
|
|
|
@ -273,10 +275,10 @@ function on_exit { |
|
|
|
else |
|
|
|
if [[ $code -gt 0 && ${#tmp_error[@]} -gt 0 ]]; then |
|
|
|
last_error="${tmp_error[-1]}" |
|
|
|
miaou_debug "<on_exit_tmp_error last={$last_error}>" |
|
|
|
if [[ $code -eq 1 ]]; then |
|
|
|
miaou_debug "<investigate_tmp_error last={$last_error}>" |
|
|
|
|
|
|
|
regex='^(.*): line ([0-9]+): (.*): unbound variable$' |
|
|
|
if [[ "$last_error" =~ $regex ]]; then |
|
|
|
if [[ $code -eq 1 ]] && [[ "$last_error" =~ $regex ]]; then |
|
|
|
local source line payload |
|
|
|
|
|
|
|
source="${BASH_REMATCH[1]}" |
|
|
|
@ -295,10 +297,12 @@ function on_exit { |
|
|
|
failure_code=$code |
|
|
|
failure_type='UNBOUND_VARIABLE' |
|
|
|
failure_payload=$payload |
|
|
|
miaou_debug "<unbound_variable source=${source} line=${line} payload={${failure_payload}}>" |
|
|
|
fi |
|
|
|
|
|
|
|
print_miaou_error "${BASH_SOURCE[1]}" "${BASH_LINENO[0]}" "${failure_code}" "${failure_type}" "${failure_payload}" |
|
|
|
unset 'tmp_error[-2]' # replace previous last_error |
|
|
|
miaou_debug "<unbound_variable source=${source} line=${line} payload={${failure_payload}}/>" |
|
|
|
fi |
|
|
|
miaou_debug "</on_exit_tmp_error>" |
|
|
|
miaou_debug "</investigate_tmp_error>" |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
|