# Copyright (C) 2005, 2006 Anthony Towns <ajt@debian.org>
# Copyright (C) 2006 James Troup <james@nocrew.org>
# Copyright (C) 2005, 2006 Anthony Towns <ajt@debian.org>
# Copyright (C) 2006 James Troup <james@nocrew.org>
"Produce a report on NEW and BYHAND packages"),
("show-new",
"Output html for packages in NEW"),
"Produce a report on NEW and BYHAND packages"),
("show-new",
"Output html for packages in NEW"),
+ ("make-pkg-file-mapping",
+ "Generate package <-> file mapping"),
+ ("generate-filelist",
+ "Generate file lists for apt-ftparchive"),
("generate-index-diffs",
"Generate .diff/Index files"),
("clean-suites",
"Clean unused/superseded packages from the archive"),
("generate-index-diffs",
"Generate .diff/Index files"),
("clean-suites",
"Clean unused/superseded packages from the archive"),
("clean-queues",
"Clean cruft from incoming"),
("clean-proposed-updates",
"Remove obsolete .changes from proposed-updates"),
("clean-queues",
"Clean cruft from incoming"),
("clean-proposed-updates",
"Remove obsolete .changes from proposed-updates"),
("check-overrides",
"Override cruft checks"),
("check-proposed-updates",
"Dependency checking for proposed-updates"),
("check-overrides",
"Override cruft checks"),
("check-proposed-updates",
"Dependency checking for proposed-updates"),
"Show information useful for NEW processing"),
("find-null-maintainers",
"Check for users with no packages in the archive"),
"Show information useful for NEW processing"),
("find-null-maintainers",
"Check for users with no packages in the archive"),
("import-keyring",
"Populate fingerprint/uid table based on a new/updated keyring"),
("import-ldap-fingerprints",
"Syncs fingerprint and uid tables with Debian LDAP db"),
("import-users-from-passwd",
"Sync PostgreSQL users with passwd file"),
("import-keyring",
"Populate fingerprint/uid table based on a new/updated keyring"),
("import-ldap-fingerprints",
"Syncs fingerprint and uid tables with Debian LDAP db"),
("import-users-from-passwd",
"Sync PostgreSQL users with passwd file"),
("init-dirs",
"Initial setup of the archive"),
("make-maintainers",
"Generates Maintainers file for BTS etc"),
("make-overrides",
"Generates override files"),
("init-dirs",
"Initial setup of the archive"),
("make-maintainers",
"Generates Maintainers file for BTS etc"),
("make-overrides",
"Generates override files"),
- ("reject-proposed-updates",
- "Manually reject from proposed-updates"),
- ("security-install",
- "Install a security upload into the archive"),
("new-security-install",
"New way to install a security upload into the archive"),
("split-done",
"Split queue/done into a date-based hierarchy"),
("stats",
"Generate statistics"),
("new-security-install",
"New way to install a security upload into the archive"),
("split-done",
"Split queue/done into a date-based hierarchy"),
("stats",
"Generate statistics"),
- ("symlink-dists",
- "Generate compatability symlinks from dists/ into pool/"),
+ ("bts-categorize",
+ "Categorize uncategorized bugs filed against ftp.debian.org"),
+ ("import-known-changes",
+ "import old changes files into known_changes table"),
+ ("add-user",
+ "Add a user to the archive"),
################################################################################
def usage(functionality, exit_code=0):
################################################################################
def usage(functionality, exit_code=0):
for (command, description) in functionality:
print " %-23s %s" % (command, description)
sys.exit(exit_code)
for (command, description) in functionality:
print " %-23s %s" % (command, description)
sys.exit(exit_code)
+
+ try:
+ module.main()
+ except KeyboardInterrupt:
+ msg = 'KeyboardInterrupt caught; exiting'
+ print msg
+ if logger:
+ logger.log([msg])
+ sys.exit(1)
+ except SystemExit:
+ pass
+ except:
+ if logger:
+ for line in traceback.format_exc().split('\n')[:-1]:
+ logger.log(['exception', line])
+ raise
################################################################################
if __name__ == "__main__":
################################################################################
if __name__ == "__main__":