almost child_error
This commit is contained in:
+19
-4
@@ -290,6 +290,7 @@ function dump_failure {
|
|||||||
function save_err_trace_to_main {
|
function save_err_trace_to_main {
|
||||||
miaou_debug "<save_stacktrace_to_stderr count=${#error_source[@]} to=${MIAOU_BASH_ERROR_CHILDREN}>"
|
miaou_debug "<save_stacktrace_to_stderr count=${#error_source[@]} to=${MIAOU_BASH_ERROR_CHILDREN}>"
|
||||||
local i source lineno funcname
|
local i source lineno funcname
|
||||||
|
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done
|
||||||
for i in "${!error_source[@]}"; do
|
for i in "${!error_source[@]}"; do
|
||||||
source="${error_source[$i]}"
|
source="${error_source[$i]}"
|
||||||
lineno="${error_lineno[$i]}"
|
lineno="${error_lineno[$i]}"
|
||||||
@@ -297,7 +298,6 @@ function save_err_trace_to_main {
|
|||||||
miaou_debug "<trace source=${source} lineno=${lineno} funcname=${funcname}/>"
|
miaou_debug "<trace source=${source} lineno=${lineno} funcname=${funcname}/>"
|
||||||
>>"$MIAOU_BASH_ERROR_CHILDREN" echo -e "\tmiaou_trace: source=${source} lineno=${lineno} funcname=${funcname}"
|
>>"$MIAOU_BASH_ERROR_CHILDREN" echo -e "\tmiaou_trace: source=${source} lineno=${lineno} funcname=${funcname}"
|
||||||
done
|
done
|
||||||
for i in "${tmp_error[@]}"; do >>"$MIAOU_BASH_ERROR_CHILDREN" echo "$i"; done
|
|
||||||
miaou_debug "</save_stacktrace_to_stderr>"
|
miaou_debug "</save_stacktrace_to_stderr>"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -347,10 +347,25 @@ function load_tmp_error {
|
|||||||
miaou_debug "<tmp_error empty/>"
|
miaou_debug "<tmp_error empty/>"
|
||||||
else
|
else
|
||||||
miaou_debug "<tmp_error count=${count}>"
|
miaou_debug "<tmp_error count=${count}>"
|
||||||
local i
|
local i miaou_error_regex last_miaou_error_index=-1 content
|
||||||
for i in "${tmp_error[@]}"; do
|
local multiple_errors=()
|
||||||
miaou_debug "<tmperr content={$i}/>"
|
miaou_error_regex='^(.*): line ([0-9]+): miaou_error:'
|
||||||
|
for i in "${!tmp_error[@]}"; do
|
||||||
|
content="${tmp_error[i]}"
|
||||||
|
miaou_debug "<tmperr index=$i content={$content}/>"
|
||||||
|
if [[ "$content" =~ $miaou_error_regex ]]; then
|
||||||
|
if [[ $last_miaou_error_index -ge 0 ]]; then
|
||||||
|
multiple_errors+=("$last_miaou_error_index")
|
||||||
|
fi
|
||||||
|
last_miaou_error_index=$i
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
if [[ "${#multiple_errors[@]}" -gt 0 ]]; then
|
||||||
|
miaou_debug "multiple_errors = ${multiple_errors[*]}"
|
||||||
|
for i in "${multiple_errors[@]}"; do unset "tmp_error[$i]"; done
|
||||||
|
tmp_error=("${tmp_error[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
miaou_debug "</tmp_error>"
|
miaou_debug "</tmp_error>"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
function library {
|
function library {
|
||||||
echo library loaded
|
echo library loaded
|
||||||
>&2 echo stderr from library
|
>&2 echo stderr from library
|
||||||
pwd
|
|
||||||
# . "./test/stub/extra/onemore.bash"
|
# . "./test/stub/extra/onemore.bash"
|
||||||
"./test/stub/extra/onemore.bash"
|
"./test/stub/extra/onemore.bash"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user