Files
server/usr/lib/lsb/init-functions.d/50-ubuntu-logging
2026-01-07 20:52:11 +01:00

145 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
}