diff options
Diffstat (limited to 'meta/classes')
-rw-r--r-- | meta/classes/base.bbclass | 1 | ||||
-rw-r--r-- | meta/classes/logging.bbclass | 72 |
2 files changed, 73 insertions, 0 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 2dcbcb3dc9..4f20bc22d2 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -8,6 +8,7 @@ inherit utils | |||
8 | inherit utility-tasks | 8 | inherit utility-tasks |
9 | inherit metadata_scm | 9 | inherit metadata_scm |
10 | inherit buildstats | 10 | inherit buildstats |
11 | inherit logging | ||
11 | 12 | ||
12 | python sys_path_eh () { | 13 | python sys_path_eh () { |
13 | if isinstance(e, bb.event.ConfigParsed): | 14 | if isinstance(e, bb.event.ConfigParsed): |
diff --git a/meta/classes/logging.bbclass b/meta/classes/logging.bbclass new file mode 100644 index 0000000000..78d65bda3a --- /dev/null +++ b/meta/classes/logging.bbclass | |||
@@ -0,0 +1,72 @@ | |||
1 | # The following logging mechanisms are to be used in bash functions of recipes. | ||
2 | # They are intended to map one to one in intention and output format with the | ||
3 | # python recipe logging functions of a similar naming convention: bb.plain(), | ||
4 | # bb.note(), etc. | ||
5 | # | ||
6 | # For the time being, all of these print only to the task logs. Future | ||
7 | # enhancements may integrate these calls with the bitbake logging | ||
8 | # infrastructure, allowing for printing to the console as appropriate. The | ||
9 | # interface and intention statements reflect that future goal. Once it is | ||
10 | # in place, no changes will be necessary to recipes using these logging | ||
11 | # mechanisms. | ||
12 | |||
13 | # Print the output exactly as it is passed in. Typically used for output of | ||
14 | # tasks that should be seen on the console. Use sparingly. | ||
15 | # Output: logs console | ||
16 | # NOTE: console output is not currently implemented. | ||
17 | bbplain() { | ||
18 | echo "$*" | ||
19 | } | ||
20 | |||
21 | # Notify the user of a noteworthy condition. | ||
22 | # Output: logs console | ||
23 | # NOTE: console output is not currently implemented. | ||
24 | bbnote() { | ||
25 | echo "NOTE: $*" | ||
26 | } | ||
27 | |||
28 | # Print a warning to the log. Warnings are non-fatal, and do not | ||
29 | # indicate a build failure. | ||
30 | # Output: logs | ||
31 | bbwarn() { | ||
32 | echo "WARNING: $*" | ||
33 | } | ||
34 | |||
35 | # Print an error to the log. Errors are non-fatal in that the build can | ||
36 | # continue, but they do indicate a build failure. | ||
37 | # Output: logs | ||
38 | bberror() { | ||
39 | echo "ERROR: $*" | ||
40 | } | ||
41 | |||
42 | # Print a fatal error to the log. Fatal errors indicate build failure | ||
43 | # and halt the build, exiting with an error code. | ||
44 | # Output: logs | ||
45 | bbfatal() { | ||
46 | echo "ERROR: $*" | ||
47 | exit 1 | ||
48 | } | ||
49 | |||
50 | # Print debug messages. These are appropriate for progress checkpoint | ||
51 | # messages to the logs. Depending on the debug log level, they may also | ||
52 | # go to the console. | ||
53 | # Output: logs console | ||
54 | # Usage: bbdebug 1 "first level debug message" | ||
55 | # bbdebug 2 "second level debug message" | ||
56 | # NOTE: console output is not currently implemented. | ||
57 | bbdebug() { | ||
58 | USAGE='Usage: bbdebug [123] "message"' | ||
59 | if [ $# -lt 2 ]; then | ||
60 | bbfatal "$USAGE" | ||
61 | fi | ||
62 | |||
63 | # Strip off the debug level and ensure it is an integer | ||
64 | DBGLVL=$1; shift | ||
65 | if ! [[ "$DBGLVL" =~ ^[0-9]+ ]]; then | ||
66 | bbfatal "$USAGE" | ||
67 | fi | ||
68 | |||
69 | # All debug output is printed to the logs | ||
70 | echo "DEBUG: $*" | ||
71 | } | ||
72 | |||