[oe-commits] Holger Hans Peter Freyther : [base] Autodetect the SCM and add listing of git repositories

GIT User account git at amethyst.openembedded.net
Wed Oct 15 17:01:17 UTC 2008


Module: openembedded.dev.git
Branch: org.openembedded.dev
Commit: 55e0ea8b49448d2277e54e27ebb61f0861e3fcc8
URL:    http://gitweb.openembedded.net/?p=openembedded.dev.git&a=commit;h=55e0ea8b49448d2277e54e27ebb61f0861e3fcc8

Author: Holger Hans Peter Freyther <zecke at openmoko.org>
Date:   Sat Sep  6 03:00:30 2008 +0200

[base] Autodetect the SCM and add listing of git repositories

---

 classes/base.bbclass |   44 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/classes/base.bbclass b/classes/base.bbclass
index bac46f1..8ff2346 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -739,8 +739,48 @@ def base_get_metadata_svn_revision(d):
 		pass
 	return revision
 
-METADATA_BRANCH ?= "${@base_get_metadata_monotone_branch(d)}"
-METADATA_REVISION ?= "${@base_get_metadata_monotone_revision(d)}"
+def base_get_metadata_git_branch(d):
+	import os
+	branch = os.popen('cd %s; git-branch | grep "^* " | tr -d "* "' % base_get_scmbasepath(d)).read()
+
+	if len(branch) != 0:
+		return branch
+	return "<unknown>"
+
+def base_get_metadata_git_revision(d):
+	import os
+	rev = os.popen("cd %s; git-log -n 1 --pretty=oneline --" % base_get_scmbasepath(d)).read().split(" ")[0]
+	if len(rev) != 0:
+		return rev
+	return "<unknown>"
+
+def base_detect_revision(d):
+	scms = [base_get_metadata_monotone_revision, \
+			base_get_metadata_svn_revision, \
+			base_get_metadata_git_revision]
+
+	for scm in scms:
+		rev = scm(d)
+		if rev <> "<unknown>":
+			return rev
+
+	return "<unknown>"	
+
+def base_detect_branch(d):
+	scms = [base_get_metadata_monotone_branch, \
+			base_get_metadata_git_branch]
+
+	for scm in scms:
+		rev = scm(d)
+		if rev <> "<unknown>":
+			return rev
+
+	return "<unknown>"	
+	
+	
+
+METADATA_BRANCH ?= "${@base_detect_branch(d)}"
+METADATA_REVISION ?= "${@base_detect_revision(d)}"
 
 addhandler base_eventhandler
 python base_eventhandler() {





More information about the Openembedded-commits mailing list