diff --git a/poc b/poc index fa26b9c..94a2c4d 100755 --- a/poc +++ b/poc @@ -44,11 +44,10 @@ function is_true { [[ "${1:-}" == 'true' ]] } -# FIXME: define an alias to bypass ARG evaluation when unnecessary! -# example: -# alias toto="bash -c \"[[ \\\$MIAOU_DEBUG == 'true' ]] && echo yes \\\$* || echo nope\"" +# HINT: define an alias to bypass ARG evaluation when unnecessary! +# example: alias toto="bash -c \"[[ \\\$MIAOU_DEBUG == 'true' ]] && echo yes \\\$* || echo nope\"" function miaou_debug { - is_true "${MIAOU_DEBUG}" && >/dev/tty builtin echo -e "\e[90mDEBUG <==> \e[33m$*\e[0m" || true + is_true "${MIAOU_DEBUG}" && >/dev/tty builtin echo -e "\e[90m <== DEBUG ==> \e[33m$*\e[0m" || true } function tty_ansi { @@ -73,9 +72,8 @@ function on_error { failure_code="${1:-200}" >/dev/tty printf '\r' # force carriage return explicitly - miaou_debug "on_error: $failure_code ($$ -- $BASHPID)" - if [[ $$ == "$BASHPID" ]]; then + miaou_debug "" failure_type="COMMAND_ERROR" print_miaou_error "${BASH_SOURCE[1]}" "${BASH_LINENO[0]}" "${failure_code}" "${failure_type}" '...' @@ -91,6 +89,7 @@ function on_error { exit "$failure_code" else + miaou_debug "" print_miaou_error "${BASH_SOURCE[1]}" "${BASH_LINENO[0]}" "${failure_code}" 'SUBSHELL_ERROR' kill -PIPE $$ fi @@ -122,22 +121,22 @@ function on_pipe { failure_code=141 failure_type="PIPE_ERROR" fi - # miaou_debug on_pipe: "${failure_code}" + miaou_debug "" exit "$failure_code" } function dump_stderr { - miaou_debug --stderr-- + miaou_debug '' mapfile -t tmp_error <"$MIAOU_BASH_ERROR" tty_ansi FG_LIGHTBLUE for i in "${tmp_error[@]}"; do echo "$i"; done tty_ansi RESET - miaou_debug --end of stderr-- + miaou_debug '' } function dump_failure { local i - miaou_debug --tty error box-- + miaou_debug '' tty_ansi FG_MAGENTA length_box=$((${#failure_type} + ${#failure_code} + (2 * 2) + 2)) [[ -v failure_payload ]] && length_box=$((length_box + ${#failure_payload} + (2 * 2) + 1)) @@ -157,11 +156,11 @@ function dump_failure { echo '╝' echo " ║" tty_ansi RESET - miaou_debug --end of tty error box-- + miaou_debug '' } function dump_stacktrace { - miaou_debug --stacktrace ${#error_source[@]}-- + miaou_debug "" local i source lineno funcname for i in "${!error_source[@]}"; do tty_ansi FG_MAGENTA @@ -176,7 +175,7 @@ function dump_stacktrace { printf " \t%s" "$funcname" echo done - miaou_debug --end of stacktrace-- + miaou_debug '' } function on_exit { @@ -188,7 +187,7 @@ function on_exit { 2>&3 >/dev/tty dump_stacktrace fi - miaou_debug "on_exit $code" + miaou_debug "" } ## main @@ -204,8 +203,8 @@ trap 'on_error $?' ERR trap 'on_exit $?' EXIT trap 'on_pipe' PIPE -miaou_debug "--source from ${BASHPID}" +miaou_debug "" exec 3>/dev/stderr # shellcheck source=/dev/null 2>"$MIAOU_BASH_ERROR" source "$BASH_ARGV0" -miaou_debug '--source success' +miaou_debug ""