From f5c128008365e141082c129417eb72d2751e8045 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Wed, 10 Aug 2022 14:35:29 +0100 Subject: classes: Update classes to match new bitbake class scope functionality Move classes to classes-global or classes-recipe as appropriate to take advantage of new bitbake functionality to check class scope/usage. Signed-off-by: Richard Purdie --- meta/classes-global/logging.bbclass | 107 ++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 meta/classes-global/logging.bbclass (limited to 'meta/classes-global/logging.bbclass') diff --git a/meta/classes-global/logging.bbclass b/meta/classes-global/logging.bbclass new file mode 100644 index 0000000000..ce03abfe42 --- /dev/null +++ b/meta/classes-global/logging.bbclass @@ -0,0 +1,107 @@ +# +# 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 +} + -- cgit 1.2.3-korg