X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Ffilewriter.py;h=c010fb5dc97afc0b1cc1f115bf0ec392119acac7;hb=d89bd2d589d924f6fd38de42e0e60e6edaa977a0;hp=b44fc2a5775c0fac1e21cb56af3585c6691a31ab;hpb=a4eef13f8450fe8b109f4fafc074d50f0fda0a7c;p=dak.git diff --git a/daklib/filewriter.py b/daklib/filewriter.py index b44fc2a5..c010fb5d 100755 --- a/daklib/filewriter.py +++ b/daklib/filewriter.py @@ -43,9 +43,10 @@ class BaseFileWriter(object): include strings for suite, component, architecture and booleans uncompressed, gzip, bzip2. ''' - self.uncompressed = keywords.get('uncompressed', True) - self.gzip = keywords.get('gzip', False) - self.bzip2 = keywords.get('bzip2', False) + compression = keywords.get('compression', ['none']) + 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) @@ -65,7 +66,7 @@ class BaseFileWriter(object): # 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): @@ -93,9 +94,7 @@ class BinaryContentsFileWriter(BaseFileWriter): Output files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': False + 'compression': ['gzip'], } flags.update(keywords) if flags['debtype'] == 'deb': @@ -111,9 +110,7 @@ class SourceContentsFileWriter(BaseFileWriter): Output files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': False + 'compression': ['gzip'], } flags.update(keywords) template = "dists/%(suite)s/%(component)s/Contents-source" @@ -126,9 +123,7 @@ class PackagesFileWriter(BaseFileWriter): are strings. Output files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': True + 'compression': ['gzip', 'bzip2'], } flags.update(keywords) if flags['debtype'] == 'deb': @@ -144,10 +139,22 @@ class SourcesFileWriter(BaseFileWriter): files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': True + 'compression': ['gzip', 'bzip2'], } flags.update(keywords) template = "dists/%(suite)s/%(component)s/source/Sources" BaseFileWriter.__init__(self, template, **flags) + +class TranslationFileWriter(BaseFileWriter): + def __init__(self, **keywords): + ''' + The value of the keywords suite, component and language are strings. + Output files are bzip2 compressed only. + ''' + flags = { + 'compression': ['bzip2'], + 'language': 'en', + } + flags.update(keywords) + template = "dists/%(suite)s/%(component)s/i18n/Translation-%(language)s" + super(TranslationFileWriter, self).__init__(template, **flags)