################################################################################
+from daklib import daklog
+from daklib import utils
+from daklib.config import Config
+from daklib.dbconn import *
+from daklib.regexes import re_comments
+
+import apt_pkg
+import sys
+
+################################################################################
+
def usage (exit_code=0):
print """Usage: dak make-maintainers [OPTION] EXTRA_FILE[...]
Generate an index of packages <=> Maintainers / Uploaders.
if Options["Help"]:
usage()
+ Logger = daklog.Logger('make-maintainers')
session = DBConn().session()
# dictionary packages to maintainer names
select distinct on (package) * from binaries
order by package, version desc''')
+ Logger.log(['sources'])
for source in source_query:
maintainers[source.source] = source.maintainer.name
uploaders[source.source] = uploader_list(source)
+ Logger.log(['binaries'])
for binary in binary_query:
if binary.package not in maintainers:
maintainers[binary.package] = binary.maintainer.name
uploaders[binary.package] = uploader_list(binary.source)
+ Logger.log(['files'])
+ # Process any additional Maintainer files (e.g. from pseudo
+ # packages)
+ for filename in extra_files:
+ extrafile = utils.open_file(filename)
+ for line in extrafile.readlines():
+ line = re_comments.sub('', line).strip()
+ if line == "":
+ continue
+ (package, maintainer) = line.split(None, 1)
+ maintainers[package] = maintainer
+ uploaders[package] = [maintainer]
+
maintainer_file = open('Maintainers', 'w')
uploader_file = open('Uploaders', 'w')
for package in sorted(uploaders):
uploader_file.write(format(package, uploader))
uploader_file.close()
maintainer_file.close()
+ Logger.close()
################################################################################