X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdak.py;h=bd5108fa6e2e49607b2fc59050a43d95087e88c4;hb=6d03dbb954cd67e522374c12225aa08a129e5d60;hp=052f3b3ef7b8b7e48717116809771f20d80d75d6;hpb=3a044cf559c390a0a4dc0658ec565b6a327f136a;p=dak.git diff --git a/dak/dak.py b/dak/dak.py index 052f3b3e..bd5108fa 100755 --- a/dak/dak.py +++ b/dak/dak.py @@ -33,8 +33,15 @@ G{importgraph} ################################################################################ +import os import sys +import traceback import daklib.utils +import warnings + +from daklib.daklog import Logger +from daklib.config import Config +from daklib.dak_exceptions import CantOpenError ################################################################################ @@ -61,23 +68,29 @@ def init(): ("process-new", "Process NEW and BYHAND packages"), - ("process-unchecked", + ("process-upload", "Process packages in queue/unchecked"), - ("process-accepted", - "Install packages into the pool"), + ("process-policy", + "Process packages in policy queues from COMMENTS files"), - ("make-suite-file-list", - "Generate lists of packages per suite for apt-ftparchive"), + ("dominate", + "Remove obsolete source and binary associations from suites"), ("make-pkg-file-mapping", "Generate package <-> file mapping"), + ("generate-filelist", + "Generate file lists for apt-ftparchive"), ("generate-releases", "Generate Release files"), + ("generate-packages-sources", + "Generate Packages/Sources files"), ("contents", "Generate content 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", @@ -129,8 +142,12 @@ def init(): "Generate statistics"), ("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"), + ("make-changelog", + "Generate changelog between two suites"), ] return functionality @@ -152,6 +169,12 @@ Available commands:""" def main(): """Launch dak functionality.""" + + try: + logger = Logger(Config(), 'dak top-level', print_starting=False) + except CantOpenError: + logger = None + functionality = init() modules = [ command for (command, _) in functionality ] @@ -186,12 +209,32 @@ def main(): daklib.utils.warn("unknown command '%s'" % (cmdname)) usage(functionality, 1) + # We do not care. No idea wth sqlalchemy warns about them, makes no sense, + # so we ignore it. + warnings.filterwarnings("ignore", 'Predicate of partial index') + # 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()