Allow set +x for shell functions to be configured
cover Allow set +x for shell functions to be configured
A patch to allow the addition of "set +x" to be controlled via configuration.
The patch (against Poky, but applies cleanly with -p2 against bitbake master) is available in the git repository at:
git://git.yoctoproject.org/poky-contrib paule/bbverboselogs
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=paule/bbverboselogs
Paul Eggleton (1):
bitbake: implement BB_VERBOSE_LOGS
bitbake/lib/bb/build.py | 3 ++- bitbake/lib/bb/cooker.py | 4 ++++ bitbake/lib/bb/msg.py | 3 +++ 3 files changed, 9 insertions(+), 1 deletions(-)
Signature · 1 line
1.7.5.4
PATCH 1/1 bitbake: implement BB_VERBOSE_LOGS
Enable configuring whether "set +x" is added to all shell tasks rather than forcing it; this is enabled by setting BB_VERBOSE_LOGS to 1.
--- bitbake/lib/bb/build.py | 3 ++- bitbake/lib/bb/cooker.py | 4 ++++ bitbake/lib/bb/msg.py | 3 +++ 3 files changed, 9 insertions(+), 1 deletions(-)
bitbake/lib/bb/build.py +2 -1
@@ -221,9 +221,10 @@ def exec_func_shell(function, d, runfile, cwd=None): with open(runfile, 'w') as script: script.write('#!/bin/sh -e\n') + if bb.msg.loggerVerboseLogs: + script.write("set -x\n") data.emit_func(function, script, d) - script.write("set -x\n") if cwd: script.write("cd %s\n" % cwd) script.write("%s\n" % function)
bitbake/lib/bb/cooker.py +4 -0
@@ -206,6 +206,10 @@ class BBCooker: def parseConfiguration(self): + # Set log file verbosity + verboselogs = bb.utils.to_boolean(self.configuration.data.getVar("BB_VERBOSE_LOGS", "0")) + if verboselogs: + bb.msg.loggerVerboseLogs = True # Change nice level if we're asked to nice = self.configuration.data.getVar("BB_NICE_LEVEL", True)
bitbake/lib/bb/msg.py +3 -0
@@ -100,6 +100,7 @@ class BBLogFilter(object): loggerDefaultDebugLevel = 0 loggerDefaultVerbose = False +loggerVerboseLogs = False loggerDefaultDomains = [] def init_msgconfig(verbose, debug, debug_domains = []):
@@ -108,6 +109,8 @@ def init_msgconfig(verbose, debug, debug_domains = []): """ bb.msg.loggerDefaultDebugLevel = debug bb.msg.loggerDefaultVerbose = verbose + if verbose: + bb.msg.loggerVerboseLogs = True bb.msg.loggerDefaultDomains = debug_domains def addDefaultlogFilter(handler):
Signature · 1 line
1.7.5.4
Re: [PATCH 1/1] bitbake: implement BB_VERBOSE_LOGS
Quoted 15 lines · Paul Eggleton
Enable configuring whether "set +x" is added to all shell tasks rather than forcing it; this is enabled by setting
BB_VERBOSE_LOGSto 1.Signed-off-by Paul Eggleton <[email protected]>--- bitbake/lib/bb/build.py | 3 ++- bitbake/lib/bb/cooker.py | 4 ++++ bitbake/lib/bb/msg.py | 3 +++ 3 files changed, 9 insertions(+), 1 deletions(-)bitbake/lib/bb/build.py +0
-0
bitbake/lib/bb/build.py def exec_func_shell(function, d, runfile, cwd=None): · line 229
Quoted 10 lines
bitbake/lib/bb/build.py +2
-1@@ -221,9 +221,10 @@ def exec_func_shell(function, d, runfile, cwd=None): with open(runfile, 'w') as script: script.write('#!/bin/sh -e\n') + if bb.msg.loggerVerboseLogs: + script.write("set -x\n") data.emit_func(function, script, d) - script.write("set -x\n") if cwd: script.write("cd %s\n" % cwd)
Looks good to me but could I suggest one small tweak - position the set -x after data.emit_func()?
The reason being that having lines of output for each line in the run.* file is generally painful and it makes more sense to start tracing only when we start executing the function we care about.
Cheers,
Richard
Re: [PATCH 1/1] bitbake: implement BB_VERBOSE_LOGS
Quoted 23 lines · On Monday 27 February 2012 16:04:17 Richard Purdie wrote:
Quoted 17 lines · Paul Eggleton
bitbake/lib/bb/build.py +2
-1@@ -221,9 +221,10 @@ def exec_func_shell(function, d, runfile, cwd=None): with open(runfile, 'w') as script: script.write('#!/bin/sh -e\n') + if bb.msg.loggerVerboseLogs: + script.write("set -x\n") data.emit_func(function, script, d) - script.write("set -x\n") if cwd:Quoted 1 line
script.write("cd %s\n" % cwd)Looks good to me but could I suggest one small tweak - position the set -x after
data.emit_func()?
Quoted 3 lines
The reason being that having lines of output for each line in the run.* file is generally painful and it makes more sense to start tracing only when we start executing the function we care about.
OK, will send a v2 shortly.
Cheers,
Paul
Signature · 2 lines
Paul Eggleton Intel Open Source Technology Centre