Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb210840 authored by Tom Powell's avatar Tom Powell Committed by Romain Hunault
Browse files

roomservice: support new manifest formats.



.repo/manifest.xml is no longer a symlink becuase apparently windows
developers need to use repo and windows needs admin for symlinks.

https: //gerrit.googlesource.com/git-repo/+/a269b1cb9dc21dfd598bfea3766206b606ad4589
Change-Id: I88ea0295133959136d7214f13a76b66d89dc88d4
Signed-off-by: default avatarRomain Hunault <romain.hunault@eelo.io>
parent 4d243392
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -110,8 +110,21 @@ def indent(elem, level=0):
        if level and (not elem.tail or not elem.tail.strip()):
            elem.tail = i

def get_default_revision():
def get_manifest_path():
    '''Find the current manifest path
    In old versions of repo this is at .repo/manifest.xml
    In new versions, .repo/manifest.xml includes an include
    to some arbitrary file in .repo/manifests'''

    m = ElementTree.parse(".repo/manifest.xml")
    try:
        m.findall('default')[0]
        return '.repo/manifest.xml'
    except IndexError:
        return ".repo/manifests/{}".format(m.find("include").get("name"))

def get_default_revision():
    m = ElementTree.parse(get_manifest_path())
    d = m.findall('default')[0]
    r = d.get('revision')
    return r.replace('refs/heads/', '').replace('refs/tags/', '')
@@ -142,7 +155,7 @@ def is_in_manifest(projectpath):

    # Search in main manifest, too
    try:
        lm = ElementTree.parse(".repo/manifest.xml")
        lm = ElementTree.parse(get_manifest_path())
        lm = lm.getroot()
    except:
        lm = ElementTree.Element("manifest")