]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/filewriter.py
Merge remote-tracking branch 'ansgar/control-suite-sort-by-version' into merge
[dak.git] / daklib / filewriter.py
index 714531afe4b1a4163f120b81743dd29f91cfa097..274ef5c12dadc8b6ab6a921c9680770f1628b48c 100755 (executable)
@@ -54,13 +54,18 @@ class BaseFileWriter(object):
         '''
         Returns a file object for writing.
         '''
+        # create missing directories
+        try:
+            os.makedirs(os.path.dirname(self.path))
+        except:
+            pass
         self.file = open(self.path + '.new', 'w')
         return self.file
 
     # internal helper function
     def rename(self, filename):
         tempfilename = filename + '.new'
-        os.chmod(tempfilename, 0664)
+        os.chmod(tempfilename, 0o664)
         os.rename(tempfilename, filename)
 
     def close(self):
@@ -69,11 +74,11 @@ class BaseFileWriter(object):
         '''
         self.file.close()
         if self.gzip:
-            check_call('gzip --rsyncable <%s.new >%s.gz.new' % (self.path, self.path),
+            check_call('gzip -9cn --rsyncable <%s.new >%s.gz.new' % (self.path, self.path),
                 shell = True)
             self.rename('%s.gz' % self.path)
         if self.bzip2:
-            check_call('bzip2 <%s.new >%s.bz2.new' % (self.path, self.path), shell = True)
+            check_call('bzip2 -9 <%s.new >%s.bz2.new' % (self.path, self.path), shell = True)
             self.rename('%s.bz2' % self.path)
         if self.uncompressed:
             self.rename(self.path)
@@ -93,10 +98,10 @@ class BinaryContentsFileWriter(BaseFileWriter):
             'bzip2':        False
         }
         flags.update(keywords)
-        if 'component' in flags:
+        if flags['debtype'] == 'deb':
             template = "dists/%(suite)s/%(component)s/Contents-%(architecture)s"
-        else:
-            template = "dists/%(suite)s/Contents-%(architecture)s"
+        else: # udeb
+            template = "dists/%(suite)s/%(component)s/Contents-udeb-%(architecture)s"
         BaseFileWriter.__init__(self, template, **flags)
 
 class SourceContentsFileWriter(BaseFileWriter):