From 0bee832c750798cf3e132c4ab8ee31b0d9813925 Mon Sep 17 00:00:00 2001 From: Hui Yiqun Date: Thu, 22 Dec 2016 11:23:28 +0800 Subject: [PATCH] script to extract repo list from manifest.xml --- helpers/manifest-xml-repolist.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 helpers/manifest-xml-repolist.py diff --git a/helpers/manifest-xml-repolist.py b/helpers/manifest-xml-repolist.py new file mode 100755 index 0000000..dde257d --- /dev/null +++ b/helpers/manifest-xml-repolist.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python3 +import argparse +import xml.etree.ElementTree as ET + + +def get_repolist(manifest_file: str, remotes: list): + manifest = ET.parse(manifest_file) + default_remote = None + default = manifest.find('default') + if default is not None: + default_remote = default.get('remote') + for project in manifest.findall('project'): + if project.get('remote', default=default_remote) in remotes: + yield(project) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("manifest", + help='path to manifest.xml') + parser.add_argument("remote", nargs='+', + help='remotes whose projects should be included') + args = parser.parse_args() + for repo in get_repolist(args.manifest, args.remote): + print(repo.get('name')) + + +if __name__ == "__main__": + main() + +# vim: ts=4 sw=4 sts=4 expandtab