summaryrefslogtreecommitdiffhomepage
path: root/subr/ex_rtl_log.subr
blob: 108e90abdf72a1237d65f4a9f011bf46a1cf4d49 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#
# set -o noglob is assumed.
#

exp_rtl_log_printf() {
	local _attrs="${1}" _msg=""; shift; _msg="$(printf "${@}")";
	if [ "${BUILD_IS_PARENT:-0}" -eq 1 ]; then
		printf "%s\n" "${_msg}" >> "${DEFAULT_BUILD_LOG_FNAME}";
	fi;
	printf "\033[0m\033[${_attr}m%s\033[0m\n" "${_msg}";
};

ex_rtl_log_env_vars() {
	local _nvar=1 _arg="" _arg_len_max=0;
	ex_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
		ex_rtl_log_msg info "$(printf			\
			"%${_arg_len_max}.${_arg_len_max}s=%s"	\
			"${1%%=*}" "$(ex_rtl_get_var_unsafe ${1#*=})")";
		shift;
	done;
};

ex_rtl_log_set_vnfo_lvl() {
	EXP_RTL_LOG_VNFO_LVL="${1}";
};

ex_rtl_log_msg() {
	local _lvl="${1}" _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;
	fi;
	case "${_lvl}" in
		failexit) _attr="${DEFAULT_LOG_MSG_FAIL_COLOUR}"; ;;
		fail) _attr="${DEFAULT_LOG_MSG_FAIL_COLOUR}"; ;;
		info) _attr="${DEFAULT_LOG_MSG_INFO_COLOUR}"; ;;
		inf2) _attr="${DEFAULT_LOG_MSG_INF2_COLOUR}"; ;;
		vnfo) _attr="${DEFAULT_LOG_MSG_VNFO_COLOUR}"; ;;
		vvfo) _attr="${DEFAULT_LOG_MSG_VVFO_COLOUR}"; ;;
		vvvo) _attr="${DEFAULT_LOG_MSG_VVVO_COLOUR}"; ;;
		succ) _attr="${DEFAULT_LOG_MSG_SUCC_COLOUR}"; ;;
		suc2) _attr="${DEFAULT_LOG_MSG_SUC2_COLOUR}"; ;;
		vucc) _attr="${DEFAULT_LOG_MSG_VUCC_COLOUR}"; ;;
	esac;
	if [ ${#} -gt 1 ]; then
		exp_rtl_log_printf "${_attrs}" "==> %s %s %s" "$(ex_rtl_date)" "${1}" "$*";
	else
		exp_rtl_log_printf "${_attrs}" "==> %s %s" "$(ex_rtl_date)" "${1}";
	fi;
	if [ ${_lvl} = failexit ]; then
		exit 1;
	else
		return 0;
	fi;
};

# vim:filetype=sh