summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2011-07-23 20:25:12 +0200
committerjvoisin2011-07-23 20:25:12 +0200
commite05c88fccc364984b704acff78e96005f4cb4848 (patch)
tree73545991d75b59de8df26f8355696ffc7a31179b
parentfb7d3d5fa605596d419a5ea3950827c59c53c942 (diff)
Add the possibility to do a "ugly" remove on zip archive content
Diffstat (limited to '')
-rw-r--r--lib/archive.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/lib/archive.py b/lib/archive.py
index 33fe6e7..0c3bb15 100644
--- a/lib/archive.py
+++ b/lib/archive.py
@@ -76,6 +76,12 @@ class ZipStripper(GenericArchiveStripper):
76 return metadata 76 return metadata
77 77
78 def remove_all(self): 78 def remove_all(self):
79 self._remove_all(self, 'normal')
80
81 def remove_all_ugly(self):
82 self._remove_all(self, 'ugly')
83
84 def _remove_all(self, method):
79 zipin = zipfile.ZipFile(self.filename, 'r') 85 zipin = zipfile.ZipFile(self.filename, 'r')
80 zipout = zipfile.ZipFile(self.filename + parser.POSTFIX, 'w', 86 zipout = zipfile.ZipFile(self.filename + parser.POSTFIX, 'w',
81 allowZip64=True) 87 allowZip64=True)
@@ -85,12 +91,15 @@ class ZipStripper(GenericArchiveStripper):
85 try: 91 try:
86 cfile = mat.create_class_file(item.filename, False, 92 cfile = mat.create_class_file(item.filename, False,
87 self.add2archive) 93 self.add2archive)
88 cfile.remove_all() 94 if method is 'normal':
95 cfile.remove_all()
96 else:
97 cfile.remove_all_ugly()
89 logging.debug('Processing %s from %s' % (item.filename, 98 logging.debug('Processing %s from %s' % (item.filename,
90 self.filename)) 99 self.filename))
91 zipout.write(item.filename) 100 zipout.write(item.filename)
92 except: 101 except:
93 logging.info('%s\' filefomart is not supported' % 102 logging.info('%s\' fileformat is not supported' %
94 item.filename) 103 item.filename)
95 if self.add2archive: 104 if self.add2archive:
96 zipout.write(item.filename) 105 zipout.write(item.filename)