Skip to contentSkip to conversation

Allow set +x for shell functions to be configured

PATCH In review Paul Eggleton 2 participants 4 messages Feb 27, 2012 – Feb 28, 2012

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index e85d7c4..37686f8 100644
@@ -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
index 12b526b..d3bdd17 100644
@@ -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
index 20d9bdd..9b39325 100644
@@ -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
#2 lore raw

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_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 +0 -0
index e85d7c4..37686f8 100644

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

#3 lore raw

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
index e85d7c4..37686f8 100644
@@ -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