This function finds the most recent tag reachable from the current
commit and computes a nice reference. In order to avoid code
duplication, I generalized the branch and revision functions as well
(base_get_metadata_git_branch, base_get_metadata_git_revision).

Signed-off-by: Andrei Gherzan <and...@gherzan.ro>
---
 meta/classes/metadata_scm.bbclass | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/meta/classes/metadata_scm.bbclass 
b/meta/classes/metadata_scm.bbclass
index 58bb4c555a..1fe4b55dca 100644
--- a/meta/classes/metadata_scm.bbclass
+++ b/meta/classes/metadata_scm.bbclass
@@ -23,20 +23,19 @@ def base_get_metadata_svn_revision(path, d):
         pass
     return revision
 
-def base_get_metadata_git_branch(path, d):
+def base_get_metadata_git(path, cmd, d):
     import bb.process
-
     try:
-        rev, _ = bb.process.run('git rev-parse --abbrev-ref HEAD', cwd=path)
+        rev, _ = bb.process.run(cmd, cwd=path)
     except bb.process.ExecutionError:
         rev = '<unknown>'
     return rev.strip()
 
+def base_get_metadata_git_branch(path, d):
+    return base_get_metadata_git(path, 'git rev-parse --abbrev-ref HEAD', d)
+
 def base_get_metadata_git_revision(path, d):
-    import bb.process
+    return base_get_metadata_git(path, 'git rev-parse HEAD', d)
 
-    try:
-        rev, _ = bb.process.run('git rev-parse HEAD', cwd=path)
-    except bb.process.ExecutionError:
-        rev = '<unknown>'
-    return rev.strip()
+def base_get_metadata_git_describe(path, d):
+    return base_get_metadata_git(path, 'git describe --tags', d)
-- 
2.23.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to