[kernel] r9305 - dists/trunk/linux-2.6/debian/lib/python/debian_linux

Bastian Blank waldi at alioth.debian.org
Wed Aug 15 14:29:58 UTC 2007


Author: waldi
Date: Wed Aug 15 14:29:58 2007
New Revision: 9305

Log:
* debian/lib/python/debian_linux/gencontrol.py:
  Expect config and template dirs as list and set default.
* debian/lib/python/debian_linux/utils.py:
  Read templates from a list of directories.


Modified:
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py
   dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py

Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py	(original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/gencontrol.py	Wed Aug 15 14:29:58 2007
@@ -24,9 +24,9 @@
 class Gencontrol(object):
     makefile_targets = ('binary-arch', 'build', 'setup', 'source')
 
-    def __init__(self, underlay = None):
-        self.config = ConfigReaderCore([underlay, "debian/config"])
-        self.templates = Templates()
+    def __init__(self, config_dirs = ["debian/config"], template_dirs = ["debian/templates"]):
+        self.config = ConfigReaderCore(config_dirs)
+        self.templates = Templates(template_dirs)
 
     def __call__(self):
         packages = PackagesList()

Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py	(original)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/utils.py	Wed Aug 15 14:29:58 2007
@@ -1,4 +1,4 @@
-import debian, re, textwrap
+import debian, re, os, textwrap
 
 class SortedDict(dict):
     __slots__ = '_list',
@@ -32,30 +32,33 @@
             yield self[i]
 
 class Templates(dict):
-    def __init__(self, dir = "debian/templates"):
-        self.dir = dir
+    def __init__(self, dirs = ["debian/templates"]):
+        self.dirs = dirs
 
     def __getitem__(self, key):
         try:
-            return dict.__getitem__(self, key)
+            return super(Templates, self).__getitem__(key)
         except KeyError: pass
-        ret = self._read(key)
-        dict.__setitem__(self, key, ret)
-        return ret
+        value = self._read(key)
+        super(Templates, self).__setitem__(key, value)
+        return value
 
     def __setitem__(self, key, value):
         raise NotImplemented()
 
     def _read(self, name):
         prefix, id = name.split('.', 1)
-        f = file("%s/%s.in" % (self.dir, name))
 
-        if prefix == 'control':
-            return self._readControl(f)
+        for dir in self.dirs:
+            filename = "%s/%s.in" % (dir, name)
+            if os.path.exists(filename):
+                f = file(filename)
+                if prefix == 'control':
+                    return self._read_control(f)
+                return f.read()
+        raise KeyError(name)
 
-        return f.read()
-
-    def _readControl(self, f):
+    def _read_control(self, f):
         entries = []
 
         while True:



More information about the Kernel-svn-changes mailing list