X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=dak%2Fdak.py;h=6f1ac6a6a72e5d37d7fcb4c47f4e4a17e5db801f;hb=a644e931617220b1771931d5239dffc637d7e9cd;hp=06e923d1d2e63ced1a4fbd4075e189bc42d50974;hpb=dca650055f023509bf797c760c11e01f03d894bb;p=dak.git diff --git a/dak/dak.py b/dak/dak.py index 06e923d1..6f1ac6a6 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"), - + + ("edit-transitions", + "Edit the release transition file"), ("check-overrides", "Override cruft checks"), ("check-proposed-updates", @@ -141,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 ] @@ -177,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() ################################################################################