[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