X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdak.py;h=32ddd62f1b9fae5ea918cf09ad92b06c9de64370;hb=98d086ddda3772fb58c1bfa97478e8044596b569;hp=f3380091f32ec81537181a7aacb270493123c3a1;hpb=27d0120008e5a9e153d82f1f4db4dd0e78f7d88b;p=dak.git diff --git a/dak/dak.py b/dak/dak.py index f3380091..32ddd62f 100755 --- a/dak/dak.py +++ b/dak/dak.py @@ -33,10 +33,15 @@ G{importgraph} ################################################################################ +import os import sys -import imp +import traceback import daklib.utils +from daklib.daklog import Logger +from daklib.config import Config +from daklib.dak_exceptions import CantOpenError + ################################################################################ def init(): @@ -56,62 +61,74 @@ def init(): "Output html for packages in NEW"), ("show-deferred", "Output html and symlinks for packages in DEFERRED"), + ("graph", + "Output graphs of number of packages in various queues"), ("rm", "Remove packages from suites"), ("process-new", "Process NEW and BYHAND packages"), - ("process-unchecked", + ("process-upload", "Process packages in queue/unchecked"), - ("process-accepted", - "Install packages into the pool"), - - ("make-suite-file-list", - "Generate lists of packages per suite for apt-ftparchive"), + ("process-commands", + "Process command files (*.dak-commands)"), + ("process-policy", + "Process packages in policy queues from COMMENTS files"), + + ("dominate", + "Remove obsolete source and binary associations from suites"), + ("export", + "Export uploads from policy queues"), + ("export-suite", + "export a suite to a flat directory structure"), ("make-pkg-file-mapping", "Generate package <-> file mapping"), ("generate-releases", "Generate Release files"), + ("generate-packages-sources2", + "Generate Packages/Sources files"), ("contents", "Generate content files"), + ("metadata", + "Load data for packages/sources files"), ("generate-index-diffs", "Generate .diff/Index files"), ("clean-suites", "Clean unused/superseded packages from the archive"), + ("manage-build-queues", + "Clean and update metadata for build queues"), ("clean-queues", "Clean cruft from incoming"), - ("clean-proposed-updates", - "Remove obsolete .changes from proposed-updates"), ("transitions", "Manage the release transition file"), ("check-overrides", "Override cruft checks"), - ("check-proposed-updates", - "Dependency checking for proposed-updates"), ("control-overrides", "Manipulate/list override entries in bulk"), ("control-suite", "Manipulate suites in bulk"), + ("update-suite", + "Update suite with packages from a different suite"), ("cruft-report", "Check for obsolete or duplicated packages"), - ("decode-dot-dak", - "Display contents of a .dak file"), + ("auto-decruft", + "Clean cruft without reverse dependencies automatically"), ("examine-package", "Show information useful for NEW processing"), - ("find-null-maintainers", - "Check for users with no packages in the archive"), + ("import", + "Import existing source and binary packages"), + ("import-repository", + "Import packages from another repository"), ("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"), + ("acl", + "Manage upload ACLs"), ("admin", "Perform administration on the dak database"), - ("init-db", - "Update the database to match the conf file"), ("update-db", "Updates databae schema to latest revision"), ("init-dirs", @@ -120,18 +137,22 @@ def init(): "Generates Maintainers file for BTS etc"), ("make-overrides", "Generates override files"), - ("poolize", - "Move packages from dists/ to pool/"), ("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"), ("bts-categorize", "Categorize uncategorized bugs filed against ftp.debian.org"), ("add-user", "Add a user to the archive"), + ("make-changelog", + "Generate changelog between two suites"), + ("copy-installer", + "Copies the installer from one suite to another"), + ("override-disparity", + "Generate a list of override disparities"), + ("external-overrides", + "Modify external overrides"), ] return functionality @@ -153,6 +174,12 @@ Available commands:""" def main(): """Launch dak functionality.""" + + try: + logger = Logger('dak top-level', print_starting=False) + except CantOpenError: + logger = None + functionality = init() modules = [ command for (command, _) in functionality ] @@ -190,9 +217,25 @@ def main(): # Invoke the module module = __import__(cmdname.replace("-","_")) - module.main() + 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__": + os.environ['LANG'] = 'C' + os.environ['LC_ALL'] = 'C' main()