X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdak.py;h=859f67f52a17f5efbb82f198f1c5d9e4d9429e54;hb=a29878d1b68545cac92669617f94c81330ee4fc7;hp=abea91ac672c5c292d073fb366aa419256e8d3f5;hpb=b893898166959e406c868d5f922f10b5eceb6d77;p=dak.git diff --git a/dak/dak.py b/dak/dak.py index abea91ac..859f67f5 100755 --- a/dak/dak.py +++ b/dak/dak.py @@ -28,11 +28,31 @@ ################################################################################ -import sys +import sys, imp import daklib.utils ################################################################################ +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 + +################################################################################ + def init(): """Setup the list of modules and brief explanation of what they do.""" @@ -46,6 +66,8 @@ def init(): "Archive sanity checks"), ("queue-report", "Produce a report on NEW and BYHAND packages"), + ("show-new", + "Output html for packages in NEW"), ("rm", "Remove packages from suites"), @@ -69,7 +91,9 @@ def init(): "Clean cruft from incoming"), ("clean-proposed-updates", "Remove obsolete .changes from proposed-updates"), - + + ("check-transitions", + "Check release transition file"), ("check-overrides", "Override cruft checks"), ("check-proposed-updates", @@ -90,6 +114,8 @@ def init(): "Check for users with no packages in the archive"), ("import-archive", "Populate SQL database based from an archive tree"), + ("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", @@ -110,6 +136,8 @@ def init(): "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", @@ -137,6 +165,13 @@ Availble commands:""" def main(): """Launch dak functionality.""" + Cnf = daklib.utils.get_conf() + + if Cnf.has_key("Dinstall::UserExtensions"): + userext = UserExtension(Cnf["Dinstall::UserExtensions"]) + else: + userext = UserExtension() + functionality = init() modules = [ command for (command, _) in functionality ] @@ -173,6 +208,11 @@ def main(): # Invoke the module module = __import__(cmdname.replace("-","_")) + + module.dak_userext = userext + userext.dak_module = module + if userext.init is not None: userext.init(cmdname) + module.main() ################################################################################