# $Id: bashlib.lib 5 2008-03-11 14:44:36Z drscream $ ## lib function my_trap() { eerror "received signal - exiting..." my_exit 1 } function my_exit() { eerror "terminated at $(my_timestamp)" exit $1 } function my_timestamp() { ## YY-MM-DD HH:MM:SS date "+%Y-%m-%d %H:%M:%S" } function init_colors() { # colors if [ "$(/sbin/consoletype 2> /dev/null)" = "serial" ] then # We do not want colors on serial terminals RC_NOCOLOR="yes" else # Lastly check if the user disabled it with --nocolor argument for arg in $* do case "${arg}" in --nocolor) RC_NOCOLOR="yes" ;; --quiet) RC_QUIET_STDOUT="yes" ;; esac done fi if [ "${RC_NOCOLOR}" = "yes" ] then GOOD= WARN= BAD= NORMAL= HILITE= BRACKET= else GOOD=$'\e[32;01m' WARN=$'\e[33;01m' BAD=$'\e[31;01m' NORMAL=$'\e[0m' HILITE=$'\e[36;01m' BRACKET=$'\e[34;01m' fi } ## void esyslog(char* priority, char* tag, char* message) # # use the system logger to log a message # esyslog() { local pri= local tag= if [ -x /usr/bin/logger ] then pri="$1" tag="$2" shift 2 [ -z "$*" ] && return 0 /usr/bin/logger -p "${pri}" -t "${tag}" -- "$*" fi return 0 } # void einfo(char* message) # # show an informative message (with a newline) # einfo() { if [ "${RC_QUIET_STDOUT}" != "yes" ] then echo -e " ${GOOD}*${NORMAL} ${*}" fi return 0 } # void einfon(char* message) # # show an informative message (without a newline) # einfon() { if [ "${RC_QUIET_STDOUT}" != "yes" ] then echo -ne " ${GOOD}*${NORMAL} ${*}" fi return 0 } # void ewarn(char* message) # # show a warning message + log it # ewarn() { if [ "${RC_QUIET_STDOUT}" = "yes" ] then echo " ${*}" else echo -e " ${WARN}*${NORMAL} ${*}" fi # Log warnings to system log esyslog "daemon.warning" "rc-scripts" "${*}" return 0 } # void eerror(char* message) # # show an error message + log it # eerror() { if [ "${RC_QUIET_STDOUT}" = "yes" ] then echo " ${*}" >/dev/stderr else echo -e " ${BAD}*${NORMAL} ${*}" fi # Log errors to system log esyslog "daemon.err" "rc-scripts" "${*}" return 0 } # die on error function die() { eerror $1 exit 1 } # log actions function log() { echo ${1} >> ${log_file} } function my_check_exitcode() { if [ "$1" != "0" ]; then msg="exitcode \"$1\"" if [ "$2" != "" ]; then msg="${msg}: exec cmd \"$2\"" fi eerror "${msg}" fi } # vim: set ft=sh tw=80 sw=4 :