]> code.ossystems Code Review - openembedded-core.git/commitdiff
base.bbclass: show layer's branches/revisions in the banner info
authorDexuan Cui <dexuan.cui@intel.com>
Tue, 28 Jun 2011 05:18:59 +0000 (13:18 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 5 Jul 2011 12:41:40 +0000 (13:41 +0100)
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

index c82dae83e875fee68a0ac189ce94997783d6269f..0c2c5469259a13cad201e003784975815b6792bf 100644 (file)
@@ -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