X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Ffilewriter.py;h=2f080e681b8cc050a0f73f1c317c72e921329db4;hb=1eeb90f6bf381e10fcd8f0a04437883b443855d5;hp=c010fb5dc97afc0b1cc1f115bf0ec392119acac7;hpb=dfb9c4b902ab992e102d5496a2ef2c1e2442b742;p=dak.git diff --git a/daklib/filewriter.py b/daklib/filewriter.py old mode 100755 new mode 100644 index c010fb5d..2f080e68 --- a/daklib/filewriter.py +++ b/daklib/filewriter.py @@ -27,7 +27,7 @@ Helper code for file writing with optional compression. from daklib.config import Config -from subprocess import check_call +from daklib.daksubprocess import check_call import os, os.path @@ -47,9 +47,8 @@ class BaseFileWriter(object): self.uncompressed = 'none' in compression self.gzip = 'gzip' in compression self.bzip2 = 'bzip2' in compression - root_dir = Config()['Dir::Root'] - relative_dir = template % keywords - self.path = os.path.join(root_dir, relative_dir) + self.xz = 'xz' in compression + self.path = template % keywords def open(self): ''' @@ -81,6 +80,9 @@ class BaseFileWriter(object): if self.bzip2: check_call('bzip2 -9 <%s.new >%s.bz2.new' % (self.path, self.path), shell = True) self.rename('%s.bz2' % self.path) + if self.xz: + check_call('xz -c <{0}.new >{0}.xz.new'.format(self.path), shell=True) + self.rename('{0}.xz'.format(self.path)) if self.uncompressed: self.rename(self.path) else: @@ -98,9 +100,9 @@ class BinaryContentsFileWriter(BaseFileWriter): } flags.update(keywords) if flags['debtype'] == 'deb': - template = "dists/%(suite)s/%(component)s/Contents-%(architecture)s" + template = "%(archive)s/dists/%(suite)s/%(component)s/Contents-%(architecture)s" else: # udeb - template = "dists/%(suite)s/%(component)s/Contents-udeb-%(architecture)s" + template = "%(archive)s/dists/%(suite)s/%(component)s/Contents-udeb-%(architecture)s" BaseFileWriter.__init__(self, template, **flags) class SourceContentsFileWriter(BaseFileWriter): @@ -113,7 +115,7 @@ class SourceContentsFileWriter(BaseFileWriter): 'compression': ['gzip'], } flags.update(keywords) - template = "dists/%(suite)s/%(component)s/Contents-source" + template = "%(archive)s/dists/%(suite)s/%(component)s/Contents-source" BaseFileWriter.__init__(self, template, **flags) class PackagesFileWriter(BaseFileWriter): @@ -127,9 +129,9 @@ class PackagesFileWriter(BaseFileWriter): } flags.update(keywords) if flags['debtype'] == 'deb': - template = "dists/%(suite)s/%(component)s/binary-%(architecture)s/Packages" + template = "%(archive)s/dists/%(suite)s/%(component)s/binary-%(architecture)s/Packages" else: # udeb - template = "dists/%(suite)s/%(component)s/debian-installer/binary-%(architecture)s/Packages" + template = "%(archive)s/dists/%(suite)s/%(component)s/debian-installer/binary-%(architecture)s/Packages" BaseFileWriter.__init__(self, template, **flags) class SourcesFileWriter(BaseFileWriter): @@ -142,7 +144,7 @@ class SourcesFileWriter(BaseFileWriter): 'compression': ['gzip', 'bzip2'], } flags.update(keywords) - template = "dists/%(suite)s/%(component)s/source/Sources" + template = "%(archive)s/dists/%(suite)s/%(component)s/source/Sources" BaseFileWriter.__init__(self, template, **flags) class TranslationFileWriter(BaseFileWriter): @@ -156,5 +158,5 @@ class TranslationFileWriter(BaseFileWriter): 'language': 'en', } flags.update(keywords) - template = "dists/%(suite)s/%(component)s/i18n/Translation-%(language)s" + template = "%(archive)s/dists/%(suite)s/%(component)s/i18n/Translation-%(language)s" super(TranslationFileWriter, self).__init__(template, **flags)