From 63ff7044450d1ec0953dcae3ce0224bee92ee674 Mon Sep 17 00:00:00 2001 From: pvincent Date: Wed, 29 Jul 2026 21:41:06 +0400 Subject: [PATCH] unkown error box --- poc | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/poc b/poc index 8679297..413c917 100755 --- a/poc +++ b/poc @@ -246,12 +246,19 @@ function dump_failure { printf "%5s" " $failure_code " tty_ansi FG_MAGENTA echo "║" - echo -n '╚' - for ((i = 0; i < 4; i++)); do echo -n '═'; done - echo -n '╦' - for ((i = 5; i < length_box; i++)); do echo -n '═'; done - echo '╝' - echo " ║" + + if [[ ! -v error_source ]]; then + echo -n '╚' + for ((i = 0; i < length_box; i++)); do echo -n '═'; done + echo '╝' + else + echo -n '╚' + for ((i = 0; i < 4; i++)); do echo -n '═'; done + echo -n '╦' + for ((i = 5; i < length_box; i++)); do echo -n '═'; done + echo '╝' + echo " ║" + fi tty_ansi RESET miaou_debug '' } @@ -289,8 +296,9 @@ function load_tmp_error { function on_exit { trap - RETURN - local code="${1:-0}" last_error regex - miaou_debug "" + failure_code="${1:-0}" + local last_error regex + miaou_debug "" load_tmp_error @@ -298,7 +306,7 @@ function on_exit { last_error="${tmp_error[-1]}" regex='^(.*): line ([0-9]+): miaou_error: RETURN [0-9]+' if [[ "$last_error" =~ $regex ]]; then - miaou_debug "" + miaou_debug "" local source line source="${BASH_REMATCH[1]}" line="${BASH_REMATCH[2]}" @@ -314,12 +322,12 @@ function on_exit { add_miaou_error "${BASH_SOURCE[1]}" "${BASH_LINENO[0]}" "${failure_code}" "${failure_type}" "${failure_payload}" miaou_debug '' elif [[ ! -v failure_type ]]; then - if [[ $code -gt 0 && ${#tmp_error[@]} -gt 0 ]]; then + if [[ $failure_code -gt 0 && ${#tmp_error[@]} -gt 0 ]]; then last_error="${tmp_error[-1]}" miaou_debug "" regex='^(.*): line ([0-9]+): (.*): unbound variable$' - if [[ $code -eq 1 ]] && [[ "$last_error" =~ $regex ]]; then + if [[ $failure_code -eq 1 ]] && [[ "$last_error" =~ $regex ]]; then local source line payload source="${BASH_REMATCH[1]}" @@ -335,7 +343,7 @@ function on_exit { error_lineno=("$line" "${error_lineno[@]}") error_funcname=("${error_funcname[@]}" '
') - failure_code=$code + failure_code=$failure_code failure_type='UNBOUND_VARIABLE' failure_payload=$payload @@ -352,9 +360,11 @@ function on_exit { 2>&3 >&3 dump_stderr if [[ -v failure_type ]]; then 2>&3 >&4 dump_failure - 2>&3 >&4 dump_stacktrace + if [[ -v error_source ]]; then + 2>&3 >&4 dump_stacktrace + fi fi - if [[ $code -gt 0 ]]; then + if [[ $failure_code -gt 0 ]]; then miaou_debug "" else miaou_debug ""