From a7a5d5ef6b8cb9a9547cefbd2919b46f1697ce17 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Tue, 28 Jun 2011 13:18:59 +0800 Subject: base.bbclass: show layer's branches/revisions in the banner info 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" (From OE-Core rev: f271498638a9da271ed5da973666fe4a7bd0ac63) Signed-off-by: Dexuan Cui Signed-off-by: Richard Purdie --- meta/classes/base.bbclass | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'meta/classes/base.bbclass') diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index c82dae83e8..0c2c546925 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 -- cgit v1.2.3-54-g00ecf