]> err.no Git - dak/commitdiff
various bugfixes
authorTorsten Werner <twerner@debian.org>
Sat, 26 Mar 2011 10:29:49 +0000 (10:29 +0000)
committerTorsten Werner <twerner@debian.org>
Sat, 26 Mar 2011 10:29:49 +0000 (10:29 +0000)
Signed-off-by: Torsten Werner <twerner@debian.org>
daklib/contents.py
daklib/filewriter.py

index 1ce5779a09393a8f127bd78ab4ab20ab131f03fa..6e55f62901fa580b501342ff65321ed1fe7d56c0 100755 (executable)
@@ -27,6 +27,7 @@ Helper code for contents generation.
 
 from daklib.dbconn import *
 from daklib.config import Config
+from daklib.filewriter import BinaryContentsFileWriter
 
 from multiprocessing import Pool
 from shutil import rmtree
@@ -154,7 +155,7 @@ select bc.file, string_agg(o.section || '/' || b.package, ',' order by b.package
         }
         if self.component is not None:
             values['component'] = self.component.component_name
-        return BinaryContentsWriter(values)
+        return BinaryContentsFileWriter(**values)
 
     def get_header(self):
         '''
index f52ac76ac3f53e96f0d75a8ec29739ca9d3c9487..35919634e9e971515ff5388ff14289542e752ea8 100755 (executable)
@@ -35,7 +35,7 @@ class BaseFileWriter(object):
     '''
     Base class for compressed and uncompressed file writing.
     '''
-    def __init__(template, **keywords):
+    def __init__(self, template, **keywords):
         '''
         The template argument is a string template like
         "dists/%(suite)s/%(component)s/Contents-%(architecture)s.gz" that
@@ -54,7 +54,8 @@ class BaseFileWriter(object):
         '''
         Returns a file object for writing.
         '''
-        self.file = open(self.path + '.new')
+        self.file = open(self.path + '.new', 'w')
+        return self.file
 
     # internal helper function
     def rename(self, filename):
@@ -77,10 +78,10 @@ class BaseFileWriter(object):
         if self.uncompressed:
             self.rename(self.path)
         else:
-            os.unlink(self.path)
+            os.unlink(self.path + '.new')
 
-class BinaryContentsWriter(BaseFileWriter):
-    def __init__(**keywords):
+class BinaryContentsFileWriter(BaseFileWriter):
+    def __init__(self, **keywords):
         '''
         The value of the keywords suite, component, and architecture are
         strings. The value of component may be omitted if not applicable.
@@ -93,7 +94,7 @@ class BinaryContentsWriter(BaseFileWriter):
         }
         flags.update(keywords)
         if 'component' in flags:
-            template "dists/%(suite)s/%(component)s/Contents-%(architecture)s.gz" % values
+            template = "dists/%(suite)s/%(component)s/Contents-%(architecture)s"
         else:
-            template = "dists/%(suite)s/Contents-%(architecture)s.gz" % values
+            template = "dists/%(suite)s/Contents-%(architecture)s"
         BaseFileWriter.__init__(self, template, **flags)