| |
| |
| |
| |
| |
| |
| |
| |
| |
| RTLP_LOG_FNAME=""; |
| RTLP_LOG_NO_ATTR=0; |
| RTLP_LOG_TAGS=""; |
| RTLP_LOG_TERMINAL_COLOURS="$(tput colors 2>/dev/null)"; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| rtlp_log_msg_get_attr() { |
| local _rplmga_rattr="${1#\$}" _rplmga_tag="${2}" \ |
| _rplmga_attr="" _rplmga_attr_state="" \ |
| _rplmga_term_colour=0; |
| |
| if [ "${RTLP_LOG_TERMINAL_COLOURS}" = 256 ]; then |
| set -- 256 ""; |
| else |
| set -- ""; |
| fi; |
| |
| for _rplmga_term_colour in "${@}"; do |
| eval _rplmga_attr='${LOG_TAG_'"${_rplmga_tag}${_rplmga_term_colour:+_${_rplmga_term_colour}}"':-}'; |
| |
| if [ "${_rplmga_attr:+1}" = 1 ]; then |
| break; |
| else |
| eval _rplmga_attr_state='${RTLP_ATTR_STATE_'"${_rplmga_tag}"':-}'; |
| if [ "${_rplmga_attr_state:+1}" != 1 ]; then |
| _rplmga_attr_state=0; |
| else |
| : $((_rplmga_attr_state += 1)); |
| fi; |
| eval "RTLP_ATTR_STATE_${_rplmga_tag}=${_rplmga_attr_state}"; |
| |
| if [ "$((${_rplmga_attr_state} % 2))" -eq 0 ]; then |
| eval _rplmga_attr='${LOG_TAG_'"${_rplmga_tag}"'_even'"${_rplmga_term_colour:+_${_rplmga_term_colour}}"':-}'; |
| else |
| eval _rplmga_attr='${LOG_TAG_'"${_rplmga_tag}"'_odd'"${_rplmga_term_colour:+_${_rplmga_term_colour}}"':-}'; |
| fi; |
| |
| if [ "${_rplmga_attr:+1}" = 1 ]; then |
| break; |
| fi; |
| fi; |
| done; |
| |
| eval ${_rplmga_rattr}='${_rplmga_attr}'; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| rtlp_log_printfV() { |
| local _rplp_attr="${1}" _rplp_fmt_pfx="${2}" \ |
| _rplp_fmt="${3#*;}" _rplp_fmt_argc="${3%%;*}"; |
| shift 3; |
| |
| if [ "${#}" -ne "${_rplp_fmt_argc}" ]; then |
| if [ "${_rplp_fmt_argc}" -eq 0 ]; then |
| shift "${#}"; |
| else |
| rtlp_log_printfV "" "" "0;==> [4;41;97mFIXME TODO XXX MESSAGE STRING ARGUMENT COUNT MISMATCH[0m\n"; |
| fi; |
| fi; |
| _rplp_msg="$(printf "${_rplp_fmt_pfx}${_rplp_fmt}" "${@}")"; |
| |
| if [ "${RTLP_LOG_FNAME:+1}" = 1 ]; then |
| printf "%s\n" "${_rplp_msg}" >> "${RTLP_LOG_FNAME}"; |
| fi; |
| if [ "${RTLP_LOG_NO_ATTR:-0}" -eq 0 ]; then |
| printf "\033[0m\033[${_rplp_attr}m%s\033[0m\n" "${_rplp_msg}"; |
| else |
| printf "%s\n" "${_rplp_msg}"; |
| fi; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| rtl_log_clear_tags() { |
| RTLP_LOG_TAGS=""; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| rtl_log_enable_tagsV() { |
| local IFS=","; set -- ${*}; |
| |
| while [ "${#}" -gt 0 ]; do |
| if ! rtl_lmatch \$RTLP_LOG_TAGS "${1}" ","; then |
| RTLP_LOG_TAGS="${RTLP_LOG_TAGS:+${RTLP_LOG_TAGS},}${1}"; |
| fi; shift; |
| done; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| rtl_log_env_vars() { |
| local _rlev_tag="${1}" _rlev_type="${2}" \ |
| _rlev_arg_len_max=0 _rlev_list="" _rlev_msg="" _rlev_msg_=""; |
| shift 2; |
| |
| rtl_log_msgV "${_rlev_tag}" "${MSG_rtl_log_vars_header}" "${_rlev_type}"; |
| _rlev_list="${@}"; rtl_lmax \$_rlev_list \$_rlev_arg_len_max; |
| while [ "${#}" -gt 0 ]; do |
| rtl_get_var_unsafe \$_rlev_msg "${1#*=}"; |
| rtl_llift2 \$_rlev_msg \$_rlev_msg_ "" " "; |
| rtl_log_msgV "${_rlev_tag}" \ |
| "2;%${_rlev_arg_len_max}.${_rlev_arg_len_max}s=%s" \ |
| "${1%%=*}" "${_rlev_msg_}"; |
| shift; |
| done; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| rtl_log_msgV() { |
| local _rlm3_tag="${1}" _rlm3_fmt="${2}" \ |
| _rlm3_attr="" _rlm3_date_now=0 _rlm3_exitfl=0 |
| shift 2; |
| |
| if [ "x${_rlm3_tag}" = "xfatalexit" ]; then |
| _rlm3_tag="fatal"; _rlm3_exitfl=1; |
| fi; |
| |
| if [ "${_rlm3_tag}" = "fatal" ]\ |
| || rtl_lmatch \$RTLP_LOG_TAGS "${_rlm3_tag}" ","; |
| then |
| rtlp_log_msg_get_attr \$_rlm3_attr "${_rlm3_tag}"; |
| rtl_date \$_rlm3_date_now; |
| rtlp_log_printfV "${_rlm3_attr}" "==> ${_rlm3_date_now} " "${_rlm3_fmt}" "${@}"; |
| if [ "${_rlm3_exitfl}" -eq 1 ]; then |
| exit 1; |
| fi; |
| fi; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| rtl_log_set_fname() { |
| RTLP_LOG_FNAME="${1}"; |
| return 0; |
| }; |
| |
| |
| |
| |
| |
| |
| |
| rtl_log_set_no_attr() { |
| RTLP_LOG_NO_ATTR="${1}"; |
| return 0; |
| }; |
| |
| |