* add pisi package compression method selection

This commit is contained in:
Faik Uygur
2006-05-02 16:19:20 +00:00
parent 0297ffce57
commit ecdc8e7010
2 changed files with 11 additions and 1 deletions
+4 -1
View File
@@ -26,6 +26,7 @@ _ = __trans.ugettext
# PiSi modules
import pisi
import pisi.util as util
import pisi.context as ctx
class ArchiveError(pisi.Error):
pass
@@ -101,6 +102,7 @@ class ArchiveZip(ArchiveBase):
zip archives."""
symmagic = 2716663808 #long of hex val '0xA1ED0000L'
comp_method = {'lzma': zipfileext.ZIP_LZMA, 'deflated': zipfileext.ZIP_DEFLATED}
def __init__(self, file_path, arch_type = "zip", mode = 'r'):
super(ArchiveZip, self).__init__(file_path, arch_type)
@@ -130,7 +132,8 @@ class ArchiveZip(ArchiveBase):
attr.external_attr = self.symmagic
self.zip_obj.writestr(attr, dest)
else:
self.zip_obj.write(file_name, arc_name, zipfileext.ZIP_LZMA)
self.zip_obj.write(file_name, arc_name,
self.comp_method[ctx.get_option('compression_method')])
if not arc_name:
zinfo = self.zip_obj.getinfo(file_name)
else:
+7
View File
@@ -344,6 +344,8 @@ unpack, setup, build, install, package
name = ("build", "bi")
steps = ('unpack', 'setup', 'build', 'install', 'package')
compression_methods = ('deflated', 'lzma')
def options(self):
buildno_opts(self)
@@ -355,6 +357,8 @@ unpack, setup, build, install, package
# help=_("perform only specified step"))
self.parser.add_option("-U", "--until", action="store", default=None,
help=_("perform until and including specified step"))
self.parser.add_option("-C", "--compression-method", action="store", default='lzma',
help=_("package compression method"))
self.parser.add_option("-A", "--ignore-action-errors",
action="store_true", default=False,
help=_("bypass errors from ActionsAPI"))
@@ -384,6 +388,9 @@ unpack, setup, build, install, package
else:
self.init()
if ctx.get_option('compression_method') not in Build.compression_methods:
raise Error(_('compression_method must be one of %s ') % pisi.util.strlist(Build.compression_methods))
if ctx.get_option('output_dir'):
ctx.ui.info(_('Output directory: %s') % ctx.config.options.output_dir)
else: