diff options
author | Lucio Andrés Illanes Albornoz <lucio@lucioillanes.de> | 2020-02-26 21:54:12 +0000 |
---|---|---|
committer | Lucio Andrés Illanes Albornoz <lucio@lucioillanes.de> | 2020-02-26 21:54:12 +0000 |
commit | c6d6e08feab839a9dc5792071fb803494cc51a69 (patch) | |
tree | 1513c817e4446ac3cf512d6c1f287a10fc1daf2e /subr/rtl_log.subr | |
parent | 4a5da5254e1207686f492e7ce8759c80466185f3 (diff) | |
download | midipix_build-c6d6e08feab839a9dc5792071fb803494cc51a69.tar.bz2 midipix_build-c6d6e08feab839a9dc5792071fb803494cc51a69.tar.xz |
General cleanup, pt. II.
Diffstat (limited to 'subr/rtl_log.subr')
-rw-r--r-- | subr/rtl_log.subr | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/subr/rtl_log.subr b/subr/rtl_log.subr new file mode 100644 index 00000000..e27e81d6 --- /dev/null +++ b/subr/rtl_log.subr @@ -0,0 +1,78 @@ +# +# set +o errexit -o noglob is assumed. +# + +: ${DEFAULT_LOG_MSG_FAIL_COLOUR:=91}; +: ${DEFAULT_LOG_MSG_INFO_COLOUR:=93}; +: ${DEFAULT_LOG_MSG_INF2_COLOUR:=33}; +: ${DEFAULT_LOG_MSG_SUCC_COLOUR:=92}; +: ${DEFAULT_LOG_MSG_SUC2_COLOUR:=32}; +: ${DEFAULT_LOG_MSG_VNFO_COLOUR:=96}; +: ${DEFAULT_LOG_MSG_VUCC_COLOUR:=90}; +: ${DEFAULT_LOG_MSG_VVFO_COLOUR:=96}; +: ${DEFAULT_LOG_MSG_VVVO_COLOUR:=96}; +: ${DEFAULT_LOG_MSG_VVVV_COLOUR:=96}; + +exp_rtl_log_printf() { + local _attrs="${1}" _msg=""; shift; _msg="$(printf "${@}")"; + if [ "${BUILD_IS_PARENT:-0}" -eq 1 ]\ + && [ -n "${DEFAULT_BUILD_LOG_FNAME}" ]\ + && [ -e "${DEFAULT_BUILD_LOG_FNAME}" ]; then + printf "%s\n" "${_msg}" >> "${DEFAULT_BUILD_LOG_FNAME}"; + fi; + printf "\033[0m\033[${_attr}m%s\033[0m\n" "${_msg}"; +}; + +rtl_log_env_vars() { + local _nvar=1 _arg="" _arg_len_max=0; + rtl_log_msg info "Variables for this ${1:-build}:"; shift; + while [ ${_nvar} -le ${#} ]; do + _arg="$(eval echo \${${_nvar}})"; + _arg="${_arg%%=*}"; + if [ ${#_arg} -gt ${_arg_len_max} ]; then + _arg_len_max=${#_arg}; + fi; : $((_nvar+=1)); + done; + while [ ${#} -gt 0 ]; do + rtl_log_msg info "$(printf \ + "%${_arg_len_max}.${_arg_len_max}s=%s" \ + "${1%%=*}" "$(rtl_get_var_unsafe ${1#*=})")"; + shift; + done; +}; + +rtl_log_set_vnfo_lvl() { + EXP_RTL_LOG_VNFO_LVL="${1}"; +}; + +rtl_log_msg() { + local _lvl="${1}" _lvl_uc="" _attr=""; shift; + if [ "${_lvl}" = vnfo ]\ + || [ "${_lvl}" = vucc ]\ + && [ "${EXP_RTL_LOG_VNFO_LVL:-0}" -lt 1 ]; then + return; + elif [ "${_lvl}" = vvfo ]\ + && [ "${EXP_RTL_LOG_VNFO_LVL:-0}" -lt 2 ]; then + return; + elif [ "${_lvl}" = vvvo ]\ + && [ "${EXP_RTL_LOG_VNFO_LVL:-0}" -lt 3 ]; then + return; + elif [ "${_lvl}" = vvvv ]\ + && [ "${EXP_RTL_LOG_VNFO_LVL:-0}" -lt 4 ]; then + return; + fi; + _lvl_uc="$(rtl_toupper "${_lvl%exit}")"; + _attr="$(rtl_get_var_unsafe "DEFAULT_LOG_MSG_${_lvl_uc}_COLOUR")"; + if [ ${#} -gt 1 ]; then + exp_rtl_log_printf "${_attrs}" "==> %s %s %s" "$(rtl_date)" "${1}" "$*"; + else + exp_rtl_log_printf "${_attrs}" "==> %s %s" "$(rtl_date)" "${1}"; + fi; + if [ ${_lvl} = failexit ]; then + exit 1; + else + return 0; + fi; +}; + +# vim:filetype=sh |