Reduce code duplication to a common function in oe.buildcfg.

Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org>
---
 meta/classes/base.bbclass            |  7 ++-----
 meta/classes/buildhistory.bbclass    | 10 +++-------
 meta/classes/image-buildinfo.bbclass |  8 ++------
 meta/lib/oe/buildcfg.py              |  7 +++++++
 4 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index f59e95fef06..20968a50766 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -218,11 +218,8 @@ def get_source_date_epoch_value(d):
     return oe.reproducible.epochfile_read(d.getVar('SDE_FILE'), d)
 
 def get_layers_branch_rev(d):
-    layers = (d.getVar("BBLAYERS") or "").split()
-    layers_branch_rev = ["%-20s = \"%s:%s\"" % (os.path.basename(i), \
-        oe.buildcfg.get_metadata_git_branch(i, None).strip(), \
-        oe.buildcfg.get_metadata_git_revision(i, None)) \
-            for i in layers]
+    revisions = oe.buildcfg.get_layer_revisions(d)
+    layers_branch_rev = ["%-20s = \"%s:%s\"" % (r[1], r[2], r[3]) for r in 
revisions]
     i = len(layers_branch_rev)-1
     p1 = layers_branch_rev[i].find("=")
     s1 = layers_branch_rev[i][p1:]
diff --git a/meta/classes/buildhistory.bbclass 
b/meta/classes/buildhistory.bbclass
index 6fffd471896..4ba9ec8f25d 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -742,13 +742,9 @@ def buildhistory_get_build_id(d):
     return('\n%s\n%s\n' % (statusheader, '\n'.join(statuslines)))
 
 def buildhistory_get_metadata_revs(d):
-    # We want an easily machine-readable format here, so get_layers_branch_rev 
isn't quite what we want
-    layers = (d.getVar("BBLAYERS") or "").split()
-    medadata_revs = ["%-17s = %s:%s%s" % (os.path.basename(i), \
-        oe.buildcfg.get_metadata_git_branch(i, None).strip(), \
-        oe.buildcfg.get_metadata_git_revision(i, None), \
-        oe.buildcfg.is_layer_modified(i)) \
-            for i in layers]
+    # We want an easily machine-readable format here
+    revisions = oe.buildcfg.get_layer_revisions(d)
+    medadata_revs = ["%-17s = %s:%s%s" % (r[1], r[2], r[3], r[4]) for r in 
revisions]
     return '\n'.join(medadata_revs)
 
 def outputvars(vars, listvars, d):
diff --git a/meta/classes/image-buildinfo.bbclass 
b/meta/classes/image-buildinfo.bbclass
index c149660f31a..d4a12b5e102 100644
--- a/meta/classes/image-buildinfo.bbclass
+++ b/meta/classes/image-buildinfo.bbclass
@@ -28,12 +28,8 @@ def image_buildinfo_outputvars(vars, d):
 
 # Returns layer revisions along with their respective status
 def get_layer_revs(d):
-    layers = (d.getVar("BBLAYERS") or "").split()
-    medadata_revs = ["%-17s = %s:%s %s" % (os.path.basename(i), \
-        oe.buildcfg.get_metadata_git_branch(i, None).strip(), \
-        oe.buildcfg.get_metadata_git_revision(i, None), \
-        oe.buildcfg.is_layer_modified(i)) \
-            for i in layers]
+    revisions = oe.buildcfg.get_layer_revisions(d)
+    medadata_revs = ["%-17s = %s:%s%s" % (r[1], r[2], r[3], r[4]) for r in 
revisions]
     return '\n'.join(medadata_revs)
 
 def buildinfo_target(d):
diff --git a/meta/lib/oe/buildcfg.py b/meta/lib/oe/buildcfg.py
index 364c40a2f02..90f5e057153 100644
--- a/meta/lib/oe/buildcfg.py
+++ b/meta/lib/oe/buildcfg.py
@@ -40,3 +40,10 @@ def is_layer_modified(path):
         # (expected) return code 1 in a modified git repo. For example, we get
         # output and a 129 return code when a layer isn't a git repo at all.
         return " -- modified"
+
+def get_layer_revisions(d):
+    layers = (d.getVar("BBLAYERS") or "").split()
+    revisions = []
+    for i in layers:
+        revisions.append((i, os.path.basename(i), get_metadata_git_branch(i, 
None).strip(), get_metadata_git_revision(i, None), is_layer_modified(i)))
+    return revisions
-- 
2.34.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#166773): 
https://lists.openembedded.org/g/openembedded-core/message/166773
Mute This Topic: https://lists.openembedded.org/mt/91643184/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to