|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
#
|
|
Lucio Andrés Illanes Albornoz |
e1d469 |
# set +o errexit -o noglob -o nounset is assumed.
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
#
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
#
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
# Private globals and subroutines
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
#
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
RTLP_LOG_FNAME="";
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
RTLP_LOG_NO_ATTR=0;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
RTLP_LOG_TAGS="";
|
|
Lucio Andrés Illanes Albornoz |
ae3ff0 |
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
rtlp_log_printf() {
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
local _attr="${1}" _fmt_pfx="${2}" _fmt="${3#*;}" _fmt_argc="${3%%;*}"; shift 3;
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
if [ "${#}" -ne "${_fmt_argc}" ]; then
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
if [ "${_fmt_argc}" -eq 0 ]; then
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
shift "${#}";
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
else
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
rtlp_log_printf "" "" "0;==> ?[4;41;97mFIXME TODO XXX MESSAGE STRING ARGUMENT COUNT MISMATCH?[0m\n";
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
fi;
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
fi;
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
_msg="$(printf "${_fmt_pfx}${_fmt}" "${@}")";
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
if [ -n "${RTLP_LOG_FNAME}" ]; then
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
printf "%s\n" "${_msg}" >> "${RTLP_LOG_FNAME}";
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
fi;
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
if [ "${RTLP_LOG_NO_ATTR:-0}" -eq 0 ]; then
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
printf "\033[0m\033[${_attr}m%s\033[0m\n" "${_msg}";
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
else
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
printf "%s\n" "${_msg}";
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
fi; return 0;
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
a43dbf |
};
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
a43dbf |
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
#
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
# Public subroutines
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
#
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
rtl_log_clear_tags() {
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
RTLP_LOG_TAGS=""; return 0;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
};
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
rtl_log_enable_tags() {
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
local IFS=","; set -- ${*};
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
while [ "${#}" -gt 0 ]; do
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
if ! rtl_lmatch "${RTLP_LOG_TAGS}" "${1}" ","; then
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
RTLP_LOG_TAGS="${RTLP_LOG_TAGS:+${RTLP_LOG_TAGS},}${1}";
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
fi; shift;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
done; return 0;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
};
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
|
|
Lucio Andrés Illanes Albornoz |
c6d6e0 |
rtl_log_env_vars() {
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
local _tag="${1}" _type="${2}" _arg_len_max=0; shift 2;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
rtl_log_msg "${_tag}" "${MSG_rtl_log_vars_header}" "${_type}";
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
_arg_len_max="$(rtl_lmax "${@}")";
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
while [ "${#}" -gt 0 ]; do
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
rtl_log_msg "${_tag}" \
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
"2;%${_arg_len_max}.${_arg_len_max}s=%s" \
|
|
Lucio Andrés Illanes Albornoz |
b6a9a1 |
"${1%%=*}" "$(rtl_get_var_unsafe "${1#*=}")";
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
shift;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
done; return 0;
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
};
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
|
|
Lucio Andrés Illanes Albornoz |
c6d6e0 |
rtl_log_msg() {
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
local _tag="${1}" _fmt="${2}" _attr="" _exitfl=0; shift 2;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
[ "x${_tag}" = "xfatalexit" ] && { _tag="fatal"; _exitfl=1; };
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
if rtl_lmatch "${RTLP_LOG_TAGS}" "${_tag}" ","; then
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
eval _attr='${LOG_TAG_'"${_tag}"':-}';
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
if [ "${#_attr}" -eq 0 ]; then
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
rtlp_log_printf "" "" "0;==> ?[4;41;97mFIXME TODO XXX UNKNOWN TAG \`${_tag}' PASSED TO rtl_log_msg()?[0m\n";
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
fi;
|
|
Lucio Andrés Illanes Albornoz |
dc07ba |
rtlp_log_printf "${_attr}" "==> $(rtl_date) " "${_fmt}" "${@}";
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
if [ "${_exitfl}" -eq 1 ]; then
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
exit 1;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
fi;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
fi; return 0;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
};
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
rtl_log_set_fname() {
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
RTLP_LOG_FNAME="${1}"; return 0;
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
};
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
rtl_log_set_no_attr() {
|
|
Lucio Andrés Illanes Albornoz |
b1d432 |
RTLP_LOG_NO_ATTR="${1}"; return 0;
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
};
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
|
|
Lucio Andrés Illanes Albornoz (arab, vxp) |
32ad21 |
# vim:filetype=sh
|