aboutsummaryrefslogtreecommitdiffstats
path: root/debian/lib/python/debian_linux/utils.py
diff options
context:
space:
mode:
authorBastian Blank <waldi@debian.org>2007-08-15 14:29:58 +0000
committerBastian Blank <waldi@debian.org>2007-08-15 14:29:58 +0000
commit5f0d29bcd939d2f09b6e002287082ee83a7deba6 (patch)
tree78daa5bc9f6f22529c5be900dfa1d1f6f32b574c /debian/lib/python/debian_linux/utils.py
parent21ec8f8e00992fc44994c7f3d873778e7a4d6bed (diff)
downloadkernel_replicant_linux-5f0d29bcd939d2f09b6e002287082ee83a7deba6.tar.gz
kernel_replicant_linux-5f0d29bcd939d2f09b6e002287082ee83a7deba6.tar.bz2
kernel_replicant_linux-5f0d29bcd939d2f09b6e002287082ee83a7deba6.zip
* 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. svn path=/dists/trunk/linux-2.6/; revision=9305
Diffstat (limited to 'debian/lib/python/debian_linux/utils.py')
-rw-r--r--debian/lib/python/debian_linux/utils.py29
1 files changed, 16 insertions, 13 deletions
diff --git a/debian/lib/python/debian_linux/utils.py b/debian/lib/python/debian_linux/utils.py
index f41233c5c558..abe46b7b3d40 100644
--- a/debian/lib/python/debian_linux/utils.py
+++ b/debian/lib/python/debian_linux/utils.py
@@ -1,4 +1,4 @@
-import debian, re, textwrap
+import debian, re, os, textwrap
class SortedDict(dict):
__slots__ = '_list',
@@ -32,30 +32,33 @@ class SortedDict(dict):
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: