1*4882a593Smuzhiyundef base_detect_revision(d): 2*4882a593Smuzhiyun path = base_get_scmbasepath(d) 3*4882a593Smuzhiyun return base_get_metadata_git_revision(path, d) 4*4882a593Smuzhiyun 5*4882a593Smuzhiyundef base_detect_branch(d): 6*4882a593Smuzhiyun path = base_get_scmbasepath(d) 7*4882a593Smuzhiyun return base_get_metadata_git_branch(path, d) 8*4882a593Smuzhiyun 9*4882a593Smuzhiyundef base_get_scmbasepath(d): 10*4882a593Smuzhiyun return os.path.join(d.getVar('COREBASE'), 'meta') 11*4882a593Smuzhiyun 12*4882a593Smuzhiyundef base_get_metadata_svn_revision(path, d): 13*4882a593Smuzhiyun # This only works with older subversion. For newer versions 14*4882a593Smuzhiyun # this function will need to be fixed by someone interested 15*4882a593Smuzhiyun revision = "<unknown>" 16*4882a593Smuzhiyun try: 17*4882a593Smuzhiyun with open("%s/.svn/entries" % path) as f: 18*4882a593Smuzhiyun revision = f.readlines()[3].strip() 19*4882a593Smuzhiyun except (IOError, IndexError): 20*4882a593Smuzhiyun pass 21*4882a593Smuzhiyun return revision 22*4882a593Smuzhiyun 23*4882a593Smuzhiyundef base_get_metadata_git_branch(path, d): 24*4882a593Smuzhiyun import bb.process 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun try: 27*4882a593Smuzhiyun rev, _ = bb.process.run('git rev-parse --abbrev-ref HEAD', cwd=path) 28*4882a593Smuzhiyun except bb.process.ExecutionError: 29*4882a593Smuzhiyun rev = '<unknown>' 30*4882a593Smuzhiyun return rev.strip() 31*4882a593Smuzhiyun 32*4882a593Smuzhiyundef base_get_metadata_git_revision(path, d): 33*4882a593Smuzhiyun import bb.process 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun try: 36*4882a593Smuzhiyun rev, _ = bb.process.run('git rev-parse HEAD', cwd=path) 37*4882a593Smuzhiyun except bb.process.ExecutionError: 38*4882a593Smuzhiyun rev = '<unknown>' 39*4882a593Smuzhiyun return rev.strip() 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunMETADATA_BRANCH := "${@base_detect_branch(d)}" 42*4882a593SmuzhiyunMETADATA_BRANCH[vardepvalue] = "${METADATA_BRANCH}" 43*4882a593SmuzhiyunMETADATA_REVISION := "${@base_detect_revision(d)}" 44*4882a593SmuzhiyunMETADATA_REVISION[vardepvalue] = "${METADATA_REVISION}" 45