Files
poky/meta/classes/logging.bbclass
Richard Purdie ff525695f2 classes: Add SPDX license identifiers
As stated in our top level license files, the license is MIT unless
otherwise stated. Add SPDX identifers accordingly. Replace older
license statementa with the standardised syntax. Also drop "All
Rights Reserved" expression as it isn't used now, doesn't mean anything
and is confusing.

(From OE-Core rev: 081a391fe09a21265881e39a2a496e4e10b4f80b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12 11:58:01 +01:00

108 lines
2.5 KiB
Plaintext

#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
# The following logging mechanisms are to be used in bash functions of recipes.
# They are intended to map one to one in intention and output format with the
# python recipe logging functions of a similar naming convention: bb.plain(),
# bb.note(), etc.
LOGFIFO = "${T}/fifo.${@os.getpid()}"
# Print the output exactly as it is passed in. Typically used for output of
# tasks that should be seen on the console. Use sparingly.
# Output: logs console
bbplain() {
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bbplain $*" > ${LOGFIFO}
else
echo "$*"
fi
}
# Notify the user of a noteworthy condition.
# Output: logs
bbnote() {
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bbnote $*" > ${LOGFIFO}
else
echo "NOTE: $*"
fi
}
# Print a warning to the log. Warnings are non-fatal, and do not
# indicate a build failure.
# Output: logs console
bbwarn() {
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bbwarn $*" > ${LOGFIFO}
else
echo "WARNING: $*"
fi
}
# Print an error to the log. Errors are non-fatal in that the build can
# continue, but they do indicate a build failure.
# Output: logs console
bberror() {
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bberror $*" > ${LOGFIFO}
else
echo "ERROR: $*"
fi
}
# Print a fatal error to the log. Fatal errors indicate build failure
# and halt the build, exiting with an error code.
# Output: logs console
bbfatal() {
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bbfatal $*" > ${LOGFIFO}
else
echo "ERROR: $*"
fi
exit 1
}
# Like bbfatal, except prevents the suppression of the error log by
# bitbake's UI.
# Output: logs console
bbfatal_log() {
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bbfatal_log $*" > ${LOGFIFO}
else
echo "ERROR: $*"
fi
exit 1
}
# Print debug messages. These are appropriate for progress checkpoint
# messages to the logs. Depending on the debug log level, they may also
# go to the console.
# Output: logs console
# Usage: bbdebug 1 "first level debug message"
# bbdebug 2 "second level debug message"
bbdebug() {
USAGE='Usage: bbdebug [123] "message"'
if [ $# -lt 2 ]; then
bbfatal "$USAGE"
fi
# Strip off the debug level and ensure it is an integer
DBGLVL=$1; shift
NONDIGITS=$(echo "$DBGLVL" | tr -d "[:digit:]")
if [ "$NONDIGITS" ]; then
bbfatal "$USAGE"
fi
# All debug output is printed to the logs
if [ -p ${LOGFIFO} ] ; then
printf "%b\0" "bbdebug $DBGLVL $*" > ${LOGFIFO}
else
echo "DEBUG: $*"
fi
}