فهرست منبع

support --compression none

Thomas Waldmann 10 سال پیش
والد
کامیت
b305c79ee5
2فایلهای تغییر یافته به همراه15 افزوده شده و 1 حذف شده
  1. 1 1
      attic/archiver.py
  2. 14 0
      attic/key.py

+ 1 - 1
attic/archiver.py

@@ -476,7 +476,7 @@ Type "Yes I am sure" if you understand this and want to continue.\n""")
                                choices=('none', 'passphrase', 'keyfile'), default='none',
                                choices=('none', 'passphrase', 'keyfile'), default='none',
                                help='select encryption method')
                                help='select encryption method')
         subparser.add_argument('-c', '--compression', dest='compression',
         subparser.add_argument('-c', '--compression', dest='compression',
-                               choices=('zlib', 'lzma'), default='zlib',
+                               choices=('none', 'zlib', 'lzma'), default='zlib',
                                help='select compression method')
                                help='select compression method')
 
 
         check_epilog = textwrap.dedent("""
         check_epilog = textwrap.dedent("""

+ 14 - 0
attic/key.py

@@ -90,6 +90,16 @@ class LzmaCompressor(CompressorBase):
         return lzma.decompress(data)
         return lzma.decompress(data)
 
 
 
 
+class NullCompressor(CompressorBase):
+    TYPE = 0x20
+
+    def compress(self, data):
+        return data
+
+    def decompress(self, data):
+        return data
+
+
 def compressor_creator(args):
 def compressor_creator(args):
     if args is None:  # used by unit tests
     if args is None:  # used by unit tests
         return ZlibCompressor.create(args)
         return ZlibCompressor.create(args)
@@ -97,6 +107,8 @@ def compressor_creator(args):
         return LzmaCompressor.create(args)
         return LzmaCompressor.create(args)
     if args.compression == 'zlib':
     if args.compression == 'zlib':
         return ZlibCompressor.create(args)
         return ZlibCompressor.create(args)
+    if args.compression == 'none':
+        return NullCompressor.create(args)
     raise NotImplemented(args.compression)
     raise NotImplemented(args.compression)
 
 
 
 
@@ -107,6 +119,8 @@ def compressor_factory(manifest_data):
         return ZlibCompressor()
         return ZlibCompressor()
     if compression_type == LzmaCompressor.TYPE:
     if compression_type == LzmaCompressor.TYPE:
         return LzmaCompressor()
         return LzmaCompressor()
+    if compression_type == NullCompressor.TYPE:
+        return NullCompressor()
     raise UnsupportedPayloadError(manifest_data[0])
     raise UnsupportedPayloadError(manifest_data[0])