%PDF- %PDF-
Direktori : /lib/lsb/init-functions.d/ |
Current File : //lib/lsb/init-functions.d/50-ubuntu-logging |
# Default init script logging functions suitable for Ubuntu. # See /lib/lsb/init-functions for usage help. LOG_DAEMON_MSG="" log_use_plymouth () { if [ "${loop:-n}" = y ]; then return 1 fi plymouth --ping >/dev/null 2>&1 } log_success_msg () { echo " * $@" || true } log_failure_msg () { if log_use_fancy_output; then esc='' # escape character, printf '\033' red="$esc[31m" # ANSI color escapes normal="$esc[0m" echo " $red*$normal $@" || true else echo " * $@" || true fi } log_warning_msg () { if log_use_fancy_output; then esc='' # escape character, printf '\033' yellow="$esc[33m" # ANSI color escapes normal="$esc[0m" echo " $yellow*$normal $@" || true else echo " * $@" || true fi } log_begin_msg () { log_daemon_msg "$1" } log_daemon_msg () { if [ -z "$1" ]; then return 1 fi TPUT=/usr/bin/tput if log_use_fancy_output && $TPUT xenl >/dev/null 2>&1; then COLS=`$TPUT cols` if [ "$COLS" ] && [ "$COLS" -gt 6 ]; then COL=$(( COLS - 7 )) else COLS=80 COL=73 fi if log_use_plymouth; then # If plymouth is running, don't output anything at this time # to avoid buffering problems (LP: #752393) if [ -z "$LOG_DAEMON_MSG" ]; then LOG_DAEMON_MSG=$* return fi fi # We leave the cursor `hanging' about-to-wrap (see terminfo(5) # xenl, which is approximately right). That way if the script # prints anything then we will be on the next line and not # overwrite part of the message. # Previous versions of this code attempted to colour-code the # asterisk but this can't be done reliably because in practice # init scripts sometimes print messages even when they succeed # and we won't be able to reliably know where the colourful # asterisk ought to go. printf " * $* " || true # Enough trailing spaces for ` [fail]' to fit in; if the message # is too long it wraps here rather than later, which is what we # want. esc='' # escape character, printf '\033' movecur="$esc[${COLS}G" # ANSI horizontal position absolute printf "$movecur " || true else echo " * $@" || true COL= fi } log_progress_msg () { : } log_end_msg () { if [ -z "$1" ]; then return 1 fi if [ "$COL" ] && [ -x "$TPUT" ]; then # If plymouth is running, print previously stored output # to avoid buffering problems (LP: #752393) if log_use_plymouth; then if [ -n "$LOG_DAEMON_MSG" ]; then log_daemon_msg $LOG_DAEMON_MSG LOG_DAEMON_MSG="" fi fi esc='' # escape character, printf '\033' movecur="$esc[$(( COL + 1 ))G" # ANSI horizontal position absolute printf "\r$movecur" || true if [ "$1" -eq 0 ]; then echo "[ OK ]" || true else red="$esc[31m" # ANSI color escapes normal="$esc[0m" echo "[${red}fail${normal}]" || true fi else if [ "$1" -eq 0 ]; then echo " ...done." || true else echo " ...fail!" || true fi fi return $1 } log_action_msg () { echo " * $@" || true } log_action_begin_msg () { log_daemon_msg "$@..." || true } log_action_cont_msg () { log_daemon_msg "$@..." || true } log_action_end_msg () { # In the future this may do something with $2 as well. log_end_msg "$1" || true }