r4304 - in people/waldi/linux-2.6/debian: bin lib/python

Bastian Blank waldi at costa.debian.org
Mon Oct 3 21:02:14 UTC 2005


Author: waldi
Date: 2005-10-03 21:02:13 +0000 (Mon, 03 Oct 2005)
New Revision: 4304

Modified:
   people/waldi/linux-2.6/debian/bin/gencontrol.py
   people/waldi/linux-2.6/debian/lib/python/debian_linux.py
Log:
Move template reading to lib.

* debian/bin/gencontrol.py
  - Remove RFC822 routines.
  - Use templates class.
* debian/lib/python/debian_linux.py: Add templates class.


Modified: people/waldi/linux-2.6/debian/bin/gencontrol.py
===================================================================
--- people/waldi/linux-2.6/debian/bin/gencontrol.py	2005-10-03 20:45:57 UTC (rev 4303)
+++ people/waldi/linux-2.6/debian/bin/gencontrol.py	2005-10-03 21:02:13 UTC (rev 4304)
@@ -51,38 +51,6 @@
             entries.append(e)
     return entries
 
-def read_rfc822(f):
-    entries = []
-
-    while True:
-        e = entry()
-        while True:
-            line = f.readline()
-            if not line:
-                break
-            line = line.strip('\n')
-            if not line:
-                break
-            if line[0] in ' \t':
-                if not last:
-                    raise ValueError('Continuation line seen before first header')
-                e[last] += '\n' + line.lstrip()
-                continue
-            i = line.find(':')
-            if i < 0:
-                raise ValueError("Not a header, not a continuation: ``%s''" % line)
-            last = line[:i]
-            e[last] = line[i+1:].lstrip()
-        if not e:
-            break
-
-        entries.append(e)
-
-    return entries
-
-def read_template(name):
-    return read_rfc822(file("debian/templates/control.%s.in" % name))
-
 def parse_version(version):
     version_re = ur"""
 ^
@@ -244,7 +212,7 @@
               f.write(" %s\n" % k)
         f.write('\n')
 
-def process_real_arch(packages, makefile, config, arch, vars, makeflags):
+def process_real_arch(packages, makefile, config, templates, arch, vars, makeflags):
     config_entry = config[arch]
     vars.update(config_entry)
 
@@ -253,7 +221,7 @@
             makefile.append(("%s-%s:" % (i, arch), ["@echo Architecture %s is not available!" % arch, "@exit 1"]))
         return
 
-    headers_arch = read_template("headers.arch")
+    headers_arch = templates["control.headers.arch"]
     package_headers_arch = process_package(headers_arch[0], vars)
     package_headers_arch_depends = []
 
@@ -276,13 +244,13 @@
     makefile.append(("setup-%s-real:" % arch, cmds_setup))
 
     for subarch in config_entry['subarches']:
-        process_real_subarch(packages, makefile, config, arch, subarch, vars.copy(), makeflags.copy(), package_headers_arch_depends)
+        process_real_subarch(packages, makefile, config, templates, arch, subarch, vars.copy(), makeflags.copy(), package_headers_arch_depends)
 
     cmds_binary_arch = []
     cmds_binary_arch.append(("$(MAKE) -f debian/rules.real install-headers-all GENCONTROL_ARGS='\"-Vkernel:Depends=%s\"' %s" % (', '.join(package_headers_arch_depends), makeflags_string),))
     makefile.append(("binary-arch-%s-real:" % arch, cmds_binary_arch))
 
-def process_real_flavour(packages, makefile, config, arch, subarch, flavour, vars, makeflags, package_headers_arch_depends):
+def process_real_flavour(packages, makefile, config, templates, arch, subarch, flavour, vars, makeflags, package_headers_arch_depends):
     config_entry = config['-'.join((arch, subarch, flavour))]
     vars.update(config_entry)
 
@@ -292,10 +260,10 @@
     if not vars.has_key('longclass'):
         vars['longclass'] = vars['class']
 
-    image = read_template("image")
-    headers = read_template("headers")
-    image_latest = read_template("image.latest")
-    headers_latest = read_template("headers.latest")
+    image = templates["control.image"]
+    headers = templates["control.headers"]
+    image_latest = templates["control.image.latest"]
+    headers_latest = templates["control.headers.latest"]
 
     packages_own = []
     packages_dummy = []
@@ -336,14 +304,14 @@
     makefile.append(("build-%s-%s-%s-real:" % (arch, subarch, flavour), cmds_build))
     makefile.append(("setup-%s-%s-%s-real:" % (arch, subarch, flavour), cmds_setup))
 
-def process_real_main(packages, makefile, config, version, abiname, kpkg_abiname, changelog, vars):
-    source = read_template("source")
+def process_real_main(packages, makefile, config, templates, version, abiname, kpkg_abiname, changelog, vars):
+    source = templates["control.source"]
     packages['source'] = process_package(source[0], vars)
 
-    main = read_template("main")
+    main = templates["control.main"]
     packages.extend(process_packages(main, vars))
 
-    tree = read_template("tree")
+    tree = templates["control.tree"]
     packages.append(process_real_tree(tree[0], changelog, vars))
 
     makeflags = {
@@ -360,9 +328,9 @@
     makefile.append(("binary-indep:", cmds_binary_indep))
 
     for arch in iter(config['base']['arches']):
-        process_real_arch(packages, makefile, config, arch, vars.copy(), makeflags.copy())
+        process_real_arch(packages, makefile, config, templates, arch, vars.copy(), makeflags.copy())
 
-    extra = read_template("extra")
+    extra = templates["control.extra"]
     packages.extend(process_packages(extra, vars))
     extra_pn = {}
     for i in extra:
@@ -386,7 +354,7 @@
         makefile.append(("binary-arch-%s:: binary-arch-%s-extra" % (arch, arch), None))
         makefile.append(("binary-arch-%s-extra:" % arch, cmds))
 
-def process_real_subarch(packages, makefile, config, arch, subarch, vars, makeflags, package_headers_arch_depends):
+def process_real_subarch(packages, makefile, config, templates, arch, subarch, vars, makeflags, package_headers_arch_depends):
     if subarch == 'none':
         vars['subarch'] = ''
         config_entry = config[arch]
@@ -395,7 +363,7 @@
         config_entry = config['%s-%s' % (arch, subarch)]
     vars.update(config_entry)
 
-    headers_subarch = read_template("headers.subarch")
+    headers_subarch = templates["control.headers.subarch"]
 
     package_headers = process_package(headers_subarch[0], vars)
 
@@ -427,19 +395,20 @@
     makefile.append(("setup-%s-%s-real:" % (arch, subarch), cmds_setup))
 
     for flavour in config_entry['flavours']:
-        process_real_flavour(packages, makefile, config, arch, subarch, flavour, vars.copy(), makeflags.copy(), package_headers_arch_depends)
+        process_real_flavour(packages, makefile, config, templates, arch, subarch, flavour, vars.copy(), makeflags.copy(), package_headers_arch_depends)
 
 def main():
     changelog = read_changelog()
 
     c = config()
+    t = templates()
 
     version, abiname, kpkg_abiname, vars = process_changelog({}, c, changelog)
 
     packages = packages_list()
     makefile = []
 
-    process_real_main(packages, makefile, c, version, abiname, kpkg_abiname, changelog, vars)
+    process_real_main(packages, makefile, c, t, version, abiname, kpkg_abiname, changelog, vars)
 
     write_control(packages.itervalues())
     write_makefile(makefile)

Modified: people/waldi/linux-2.6/debian/lib/python/debian_linux.py
===================================================================
--- people/waldi/linux-2.6/debian/lib/python/debian_linux.py	2005-10-03 20:45:57 UTC (rev 4303)
+++ people/waldi/linux-2.6/debian/lib/python/debian_linux.py	2005-10-03 21:02:13 UTC (rev 4304)
@@ -158,6 +158,55 @@
             else:
                 self._list.append(key)
 
+class templates(dict):
+    def __init__(self, dir = None):
+        if dir is None:
+            self.dir = "debian/templates"
+        else:
+            self.dir = dir
+
+    def __getitem__(self, key):
+        try:
+            return dict.__getitem__(self, key)
+        except KeyError: pass
+        ret = self._read(key)
+        dict.__setitem__(self, key, ret)
+        return ret
+
+    def __setitem__(self, key, value):
+        raise NotImplemented()
+
+    def _read(self, filename):
+        entries = []
+
+        f = file("%s/%s.in" % (self.dir, filename))
+
+        while True:
+            e = entry()
+            while True:
+                line = f.readline()
+                if not line:
+                    break
+                line = line.strip('\n')
+                if not line:
+                    break
+                if line[0] in ' \t':
+                    if not last:
+                        raise ValueError('Continuation line seen before first header')
+                    e[last] += '\n' + line.lstrip()
+                    continue
+                i = line.find(':')
+                if i < 0:
+                    raise ValueError("Not a header, not a continuation: ``%s''" % line)
+                last = line[:i]
+                e[last] = line[i+1:].lstrip()
+            if not e:
+                break
+
+            entries.append(e)
+
+        return entries
+
 class wrap(textwrap.TextWrapper):
     wordsep_re = re.compile(
         r'(\s+|'                                  # any whitespace




More information about the Kernel-svn-changes mailing list