script/gentree: make cpio subshells fail if cd(1) fails.
[CDN/Mosi.git] / script / lib / log.sh
1 # Include for convenience log functions
2 # Set _log_to_stderr to send messages to stderr as well, for logging
3
4 if [ -z "${__log_sh_loaded}" ]
5 then
6   __log_sh_loaded=yes
7   
8   want ansi
9
10   logf() {
11     printf "${@}"
12     [ -n "${_log_to_stderr}" ] && printf "${@}" >&2
13   }
14
15   note() {
16     printf " ${a_cyan}*${a_normal} "
17     echo "${*}"
18     [ -n "${_log_to_stderr}" ] && echo "* note: ${*}" >&2
19   }
20
21   log() {
22     printf " ${a_green}*${a_normal} "
23     echo "${*}"
24     [ -n "${_log_to_stderr}" ] && echo "* log: ${*}" >&2
25   }
26
27   warn() {
28     printf " ${a_yellow}*${a_normal} "
29     echo "${*}"
30     [ -n "${_log_to_stderr}" ] && echo "* warn: ${*}" >&2
31   }
32
33   err() {
34     printf " ${a_red}*${a_normal} "
35     echo "${*}"
36     [ -n "${_log_to_stderr}" ] && echo "* err: ${*}" >&2
37     exit 1
38   }
39
40   chk() {
41     _res=$?
42     if [ $# -gt 0 ]
43     then
44       out=$("${@}")
45       _res=$?
46     fi
47     if [ ${_res} -gt 0 ]
48     then
49       [ -n "${*}" ] && echo " ${a_red}*${a_normal} in '$(pwd)': cmd '${*}' failed with status ${_res}"
50       [ -n "${out}" ] && printf " ${a_red}*${a_normal} Output:\n${out}\n"
51       echo ""
52       kill $$
53     fi
54   }
55 fi