Patchwork [1/1,v3] base.bbclass: show layer's branches/revisions in the banner info

login
register
mail settings
Submitter Dexuan Cui
Date July 2, 2011, 3:23 p.m.
Message ID <36ae4730622d317f089534e9a586dae600d9aa54.1309619979.git.dexuan.cui@intel.com>
Download mbox | patch
Permalink /patch/6897/
State New, archived
Headers show

Comments

Dexuan Cui - July 2, 2011, 3:23 p.m.
The patch removes METADATA_BRANCH and METADATA_REVISION, and treats the meta/
in the same way as other layers.
In the case some layers belonging to the same repo, the branch and revision
are only printed once, but all the layer names are still printed.

An example output can be:

OE Build Configuration:
BB_VERSION        = "1.13.1"
TARGET_ARCH       = "i586"
TARGET_OS         = "linux"
MACHINE           = "emenlow"
DISTRO            = "poky"
DISTRO_VERSION    = "1.0+snapshot-20110702"
TARGET_FPU        = ""
meta
meta-yocto        = "dcui/banner_v3:4b712dba68a98c827b8f3d0242da9153c4f65473"
meta-emenlow
meta-sugarbay
meta-n450         = "dcui/test1:76d1178ba1a43cf6457c89717134aeb9f1275fae"

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 meta/classes/base.bbclass |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

Patch

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 119b052..87fdb74 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -166,8 +166,29 @@  python base_eventhandler() {
 
 	if name.startswith("BuildStarted"):
 		bb.data.setVar( 'BB_VERSION', bb.__version__, e.data )
-		statusvars = ['BB_VERSION', 'METADATA_BRANCH', 'METADATA_REVISION', 'TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', 'DISTRO_VERSION','TARGET_FPU']
+		statusvars = ['BB_VERSION', 'TARGET_ARCH', 'TARGET_OS', 'MACHINE', 'DISTRO', 'DISTRO_VERSION','TARGET_FPU']
 		statuslines = ["%-17s = \"%s\"" % (i, bb.data.getVar(i, e.data, 1) or '') for i in statusvars]
+
+		layers = (data.getVar("BBLAYERS", e.data, 1) or "").split()
+		layers_branch_rev = ["%-17s = \"%s:%s\"" % (os.path.basename(i), \
+			base_get_metadata_git_branch(i, None).strip(), \
+			base_get_metadata_git_revision(i, None)) \
+				for i in layers]
+		i = len(layers_branch_rev)-1
+		p1 = layers_branch_rev[i].find("=")
+		s1= layers_branch_rev[i][p1:]
+		while i > 0:
+			p2 = layers_branch_rev[i-1].find("=")
+			s2= layers_branch_rev[i-1][p2:]
+			if s1 == s2:
+				layers_branch_rev[i-1] = layers_branch_rev[i-1][0:p2]
+				i -= 1
+			else:
+				i -= 1
+				p1 = layers_branch_rev[i].find("=")
+				s1= layers_branch_rev[i][p1:]
+
+		statuslines += layers_branch_rev
 		statusmsg = "\nOE Build Configuration:\n%s\n" % '\n'.join(statuslines)
 		print statusmsg