From e60597abb73807768e577645713f81b9d447f184 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 14 Jul 2015 09:54:46 +0100 Subject: [PATCH] classes/logging: allow shell message functions to work in devshell Fix a regression caused by the shell message changes - if you run a shell task's runfile, the task isn't actually running in BitBake and thus the message FIFO won't exist - so we should just fall back to printing the message with echo as we did before so that the run files are still useful. (From OE-Core rev: 607d3306f7abef057693dcb6aac1f7b26880181d) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta/classes/logging.bbclass | 42 ++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/meta/classes/logging.bbclass b/meta/classes/logging.bbclass index 6b24839af5..06c7c31c3e 100644 --- a/meta/classes/logging.bbclass +++ b/meta/classes/logging.bbclass @@ -9,34 +9,54 @@ LOGFIFO = "${T}/fifo.${@os.getpid()}" # tasks that should be seen on the console. Use sparingly. # Output: logs console bbplain() { - printf "%b\0" "bbplain $*" > ${LOGFIFO} + if [ -p ${LOGFIFO} ] ; then + printf "%b\0" "bbplain $*" > ${LOGFIFO} + else + echo "$*" + fi } # Notify the user of a noteworthy condition. # Output: logs bbnote() { - printf "%b\0" "bbnote $*" > ${LOGFIFO} + 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() { - printf "%b\0" "bbwarn $*" > ${LOGFIFO} + 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() { - printf "%b\0" "bberror $*" > ${LOGFIFO} + 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() { - printf "%b\0" "bbfatal $*" > ${LOGFIFO} + if [ -p ${LOGFIFO} ] ; then + printf "%b\0" "bbfatal $*" > ${LOGFIFO} + else + echo "ERROR: $*" + fi exit 1 } @@ -44,7 +64,11 @@ bbfatal() { # bitbake's UI. # Output: logs console bbfatal_log() { - printf "%b\0" "bbfatal_log $*" > ${LOGFIFO} + if [ -p ${LOGFIFO} ] ; then + printf "%b\0" "bbfatal_log $*" > ${LOGFIFO} + else + echo "ERROR: $*" + fi exit 1 } @@ -68,6 +92,10 @@ bbdebug() { fi # All debug output is printed to the logs - printf "%b\0" "bbdebug $DBGLVL $*" > ${LOGFIFO} + if [ -p ${LOGFIFO} ] ; then + printf "%b\0" "bbdebug $DBGLVL $*" > ${LOGFIFO} + else + echo "DEBUG: $*" + fi }