#!/usr/bin/env miaou-bash . "$MIAOU_BASH_DIR/lib/ansi.bash" CODE=118 TYPE='SUBSHELL TERM' PAYLOAD='blabla' stack_sources=('file.bash' './lib/utility.bash' 'file.bash') stack_lines=(18 56 12) stack_functions=('f2' 'f1' '
') function ansi_block_continuation { tput sc tput cuu 1 BG=RED FG=BLACK style_ansi "\t╦" tput rc FG=RED style_ansi "\t║\n" } function ansi_block_error { BG=RED FG=BLACK PADDING=2 local content detail exit_code content=$(style_ansi "${TYPE}") content=$(style_padding "$content") detail=$(BG=BLACK style_padding "${PAYLOAD}") exit_code=$(FG=WHITE style_ansi " ${CODE}") style_block "$content$detail$exit_code" ansi_reset } function ansi_traces { local optional location optional=false for i in "${!stack_sources[@]}"; do FG=RED style_ansi "\t╟─⟶" location="${stack_sources[$i]}:${stack_lines[$i]}" is_true "$optional" && location=$(FG=GRAY STYLE=ITALIC style_ansi "\t$location") || # FIXME: \t should not be required! location=$(STYLE=ITALIC style_ansi "$location") printf "%40s\t%s\n" "${location}" "${stack_functions[$i]}" optional=true done } ansi_block_error ansi_block_continuation ansi_traces