X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdak.py;h=14cddd562545f9449d86c62c5a107f3c8db8afe2;hb=fdf3c42445b4f11f4cd71634dd2b57cb7d7a4f36;hp=859f67f52a17f5efbb82f198f1c5d9e4d9429e54;hpb=7a7563b8e19f99783505669ba603ef2d534c6603;p=dak.git diff --git a/dak/dak.py b/dak/dak.py index 859f67f5..14cddd56 100755 --- a/dak/dak.py +++ b/dak/dak.py @@ -1,6 +1,11 @@ #!/usr/bin/env python -"""Wrapper to launch dak functionality""" +""" +Wrapper to launch dak functionality + +G{importgraph} + +""" # Copyright (C) 2005, 2006 Anthony Towns # Copyright (C) 2006 James Troup @@ -28,20 +33,22 @@ ################################################################################ -import sys, imp +import sys +import imp import daklib.utils +import daklib.extensions ################################################################################ class UserExtension: def __init__(self, user_extension = None): if user_extension: - m = imp.load_source("dak_userext", user_extension) - d = m.__dict__ + m = imp.load_source("dak_userext", user_extension) + d = m.__dict__ else: m, d = None, {} - self.__dict__["_module"] = m - self.__dict__["_d"] = d + self.__dict__["_module"] = m + self.__dict__["_d"] = d def __getattr__(self, a): if a in self.__dict__: return self.__dict__[a] @@ -49,7 +56,27 @@ class UserExtension: return self._d.get(a, None) def __setattr__(self, a, v): - self._d[a] = v + self._d[a] = v + +################################################################################ + +class UserExtension: + def __init__(self, user_extension = None): + if user_extension: + m = imp.load_source("dak_userext", user_extension) + d = m.__dict__ + else: + m, d = None, {} + self.__dict__["_module"] = m + self.__dict__["_d"] = d + + def __getattr__(self, a): + if a in self.__dict__: return self.__dict__[a] + if a[0] == "_": raise AttributeError, a + return self._d.get(a, None) + + def __setattr__(self, a, v): + self._d[a] = v ################################################################################ @@ -68,21 +95,27 @@ def init(): "Produce a report on NEW and BYHAND packages"), ("show-new", "Output html for packages in NEW"), - + ("show-deferred", + "Output html and symlinks for packages in DEFERRED"), + ("rm", "Remove packages from suites"), - + ("process-new", "Process NEW and BYHAND packages"), ("process-unchecked", "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"), + ("make-pkg-file-mapping", + "Generate package <-> file mapping"), ("generate-releases", "Generate Release files"), + ("contents", + "Generate content files"), ("generate-index-diffs", "Generate .diff/Index files"), ("clean-suites", @@ -92,8 +125,8 @@ def init(): ("clean-proposed-updates", "Remove obsolete .changes from proposed-updates"), - ("check-transitions", - "Check release transition file"), + ("transitions", + "Manage the release transition file"), ("check-overrides", "Override cruft checks"), ("check-proposed-updates", @@ -122,31 +155,33 @@ def init(): "Sync PostgreSQL users with passwd file"), ("init-db", "Update the database to match the conf file"), + ("update-db", + "Updates databae schema to latest revision"), ("init-dirs", "Initial setup of the archive"), ("make-maintainers", "Generates Maintainers file for BTS etc"), ("make-overrides", "Generates override files"), - ("mirror-split", - "Split the pool/ by architecture groups"), ("poolize", "Move packages from dists/ to pool/"), ("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"), - ("symlink-dists", - "Generate compatability symlinks from dists/ into pool/"), + ("calculate-shasums", + "Calculate missing sha1sums and sha256sums"), + ("bts-categorize", + "Categorize uncategorized bugs filed against ftp.debian.org"), + ("add-user", + "Add a user to the archive"), ] return functionality - + ################################################################################ def usage(functionality, exit_code=0): @@ -155,7 +190,7 @@ def usage(functionality, exit_code=0): print """Usage: dak COMMAND [...] Run DAK commands. (Will also work if invoked as COMMAND.) -Availble commands:""" +Available commands:""" for (command, description) in functionality: print " %-23s %s" % (command, description) sys.exit(exit_code) @@ -174,7 +209,7 @@ def main(): functionality = init() modules = [ command for (command, _) in functionality ] - + if len(sys.argv) == 0: daklib.utils.fubar("err, argc == 0? how is that possible?") elif (len(sys.argv) == 1 @@ -211,6 +246,8 @@ def main(): module.dak_userext = userext userext.dak_module = module + + daklib.extensions.init(cmdname, module, userext) if userext.init is not None: userext.init(cmdname) module.main()