]> git.decadent.org.uk Git - dak.git/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.dbconn import *
 from daklib.config import Config
+from daklib.filewriter import BinaryContentsFileWriter
 
 from multiprocessing import Pool
 from shutil import rmtree
 
 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
         }
         if self.component is not None:
             values['component'] = self.component.component_name
-        return BinaryContentsWriter(values)
+        return BinaryContentsFileWriter(**values)
 
     def get_header(self):
         '''
 
     def get_header(self):
         '''
index f52ac76ac3f53e96f0d75a8ec29739ca9d3c9487..35919634e9e971515ff5388ff14289542e752ea8 100755 (executable)
@@ -35,7 +35,7 @@ class BaseFileWriter(object):
     '''
     Base class for compressed and uncompressed file writing.
     '''
     '''
     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
         '''
         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.
         '''
         '''
         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):
 
     # internal helper function
     def rename(self, filename):
@@ -77,10 +78,10 @@ class BaseFileWriter(object):
         if self.uncompressed:
             self.rename(self.path)
         else:
         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.
         '''
         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:
         }
         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:
         else:
-            template = "dists/%(suite)s/Contents-%(architecture)s.gz" % values
+            template = "dists/%(suite)s/Contents-%(architecture)s"
         BaseFileWriter.__init__(self, template, **flags)
         BaseFileWriter.__init__(self, template, **flags)