--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# vim: ts=4 et sw=4 sts=4 ai sta:
+
+import sys
+import json
+import re
+import netrc
+import urlparse
+import codecs
+
+
+def main(argv):
+
+ domains_list = [
+ 'App Framework',
+ 'Applications',
+ 'Automotive',
+ 'Base',
+ 'Graphics & UI Framework',
+ 'Location',
+ 'Messaging',
+ 'Multimedia',
+ 'Network & Connectivity',
+ 'Platform Development',
+ 'SDK',
+ 'Security',
+ 'Social & Content',
+ 'System',
+ 'Telephony',
+ 'Testing',
+ 'Web Framework'
+ ]
+
+
+ roles = [ 'Architects', 'Maintainers', 'Integrators', 'Reviewers' ]
+ domains = {}
+
+ # connection to gerrit
+ gerrit_url = "https://review.tizen.org/gerrit/"
+ user, _, password = netrc.netrc().hosts[urlparse.urlparse(gerrit_url).netloc]
+ from gerritrest import GerritREST
+ gerrit=GerritREST(gerrit_url, user, password)
+
+ for domain in domains_list:
+ domains[domain] = {
+ 'domain': domain,
+ 'architects': [],
+ 'maintainers': [],
+ 'integrators': [],
+ 'reviewers': []
+ }
+ for role in roles:
+ group = '%s - %s' % (domain, role)
+ print group
+ accounts = gerrit.get_group_members(group, recursive=True)
+ for account in accounts:
+ domains[domain][role.lower()].append(format_account(account))
+
+ with codecs.open("domains.new", "wb", encoding="utf-8") as outfile:
+ dump_all(domains, outfile)
+
+def format_account(account):
+ out = account.get('name','')
+ if 'email' in account:
+ out += " <%s>" % account['email']
+ return out.strip()
+
+
+def dump_all(domains, outfp = None):
+ names = sorted(domains.keys())
+ for name in names:
+ out = dumps_one_domain(domains[name])
+ if outfp:
+ outfp.write("\n"+out)
+
+
+def dumps_one_domain(domain):
+ out = []
+
+ out.append("D: %s" % domain['domain'])
+ if 'profiles' in domain:
+ for profile in domain['profiles']:
+ out.append("P: %s" % profile)
+ if 'description' in domain:
+ for line in domain['description']:
+ out.append("O: %s" % line)
+ if 'status' in domain:
+ out.append("S: %s" % domain['status'])
+ for role in ("architects", "maintainers", "integrators", "reviewers"):
+ if role in domain:
+ for person in domain[role]:
+ out.append("%s: %s" % (role[0].upper(), person))
+ if 'homepage' in domain:
+ out.append("H: %s" % domain['homepage'])
+ if 'parent' in domain:
+ out.append("N: %s" % domain['parent'])
+ if 'comments' in domain:
+ for line in domain['comments']:
+ out.append("C: %s" % line)
+ return "\n".join(out)+"\n"
+
+if __name__ == '__main__':
+ main(sys.argv)
+