[kernel] r9401 - in people/waldi/dkt/lib/dkt/hooks: . modules

Bastian Blank waldi at alioth.debian.org
Tue Aug 28 21:30:27 UTC 2007


Author: waldi
Date: Tue Aug 28 21:30:27 2007
New Revision: 9401

Log:
lib/dkt/hooks: Update.


Added:
   people/waldi/dkt/lib/dkt/hooks/load.py
Removed:
   people/waldi/dkt/lib/dkt/hooks/modules/__init__.py
Modified:
   people/waldi/dkt/lib/dkt/hooks/__init__.py
   people/waldi/dkt/lib/dkt/hooks/modules/backward_boot.py
   people/waldi/dkt/lib/dkt/hooks/runner.py

Modified: people/waldi/dkt/lib/dkt/hooks/__init__.py
==============================================================================
--- people/waldi/dkt/lib/dkt/hooks/__init__.py	(original)
+++ people/waldi/dkt/lib/dkt/hooks/__init__.py	Tue Aug 28 21:30:27 2007
@@ -3,8 +3,13 @@
 default_registry = registry.Registry()
 register = default_registry.register
 
-def load(path):
+def _load_default():
     from load import load
-    load(__name__ + '.modules_user', path)
+    for path in __path__:
+        load(__name__ + '.modules', path + '/modules')
 
-import modules
+def load_path(path):
+    from load import load
+    load.load(__name__ + '.modules_user', path)
+
+_load_default()

Added: people/waldi/dkt/lib/dkt/hooks/load.py
==============================================================================
--- (empty file)
+++ people/waldi/dkt/lib/dkt/hooks/load.py	Tue Aug 28 21:30:27 2007
@@ -0,0 +1,22 @@
+from __future__ import absolute_import
+import imp, os, sys
+
+def load(prefix, path):
+    ret = []
+    if not prefix in sys.modules:
+        sys.modules[prefix] = imp.new_module(prefix)
+    for root, dirs, files in os.walk(path):
+        for file in files:
+            if not file.endswith('.py'):
+                continue
+            module = file[:-3]
+            module_complete = prefix + '.' + module
+            if module_complete in sys.modules:
+                continue
+            info = imp.find_module(module, [root])
+            try:
+                ret.append(imp.load_module(module_complete, *info))
+            finally:
+                info[0].close()
+    return ret
+

Modified: people/waldi/dkt/lib/dkt/hooks/modules/backward_boot.py
==============================================================================
--- people/waldi/dkt/lib/dkt/hooks/modules/backward_boot.py	(original)
+++ people/waldi/dkt/lib/dkt/hooks/modules/backward_boot.py	Tue Aug 28 21:30:27 2007
@@ -1,7 +1,20 @@
 from dkt.hooks import default_registry, interfaces, register
+from dkt.image import interfaces as image_interfaces
+from dkt.interface import implements
+
+class Config(object):
+    implements(image_interfaces.IImageBaseConfig)
 
 class Hook(object):
+    def _check_config(self, new, list, version, image, initrd):
+        for l in list:
+            if image == list.file:
+                return
+        n = Config()
+        new.append(n)
+
     def _get_files(self):
+        import os
         ret = []
         for root, dirs, files in os.walk('/boot'):
             del dirs[:]
@@ -12,7 +25,33 @@
                     ret.append(file)
         return ret
 
+    def _get_versions(self):
+        files = self._get_files()
+
+        versions = {}
+        for file in iter(files):
+            if file.startswith("vmlinuz-") or \
+               file.startswith("vmlinux-"):
+                version = file[8:]
+                e = versions.get(version, [None, None])
+                e[0] = "/boot/" + file
+                versions[version] = e
+            elif file.startswith("initrd.img-"):
+                if file.endswith('.bak'):
+                    file = file[:-4]
+                version = file[11:]
+                e = versions.get(version, [None, None])
+                e[1] = "/boot/" + file
+                versions[version] = e
+
+        return versions
+
     def image_prepare(self, list):
+        versions = self._get_versions()
+        new = []
+        for version, (image, initrd) in versions.iteritems():
+            self._check_config(new, list, version, image, initrd)
+        list.extend(new)
         return list
 
 register('backward-boot', interfaces.IImagePrepare, Hook(), default_registry.PRIORITY_LAST, (), ('config-override',))

Modified: people/waldi/dkt/lib/dkt/hooks/runner.py
==============================================================================
--- people/waldi/dkt/lib/dkt/hooks/runner.py	(original)
+++ people/waldi/dkt/lib/dkt/hooks/runner.py	Tue Aug 28 21:30:27 2007
@@ -17,7 +17,7 @@
             ret = f(arg1, *args, **kw)
             if ret is not None:
                 arg1 = ret
-        return ret
+        return arg1
 
 class RunFirst(object):
     def __init__(self, list):



More information about the Kernel-svn-changes mailing list