summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/archive.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/archive.py b/lib/archive.py
index fb6dfa2..aa2a47f 100644
--- a/lib/archive.py
+++ b/lib/archive.py
@@ -40,6 +40,28 @@ class ZipStripper(GenericArchiveStripper):
40 zipin.close() 40 zipin.close()
41 return metadata 41 return metadata
42 42
43 def remove_all(self):
44 folder_list = []
45 zipin = zipfile.ZipFile(self.filename, 'r')
46 zipout = zipfile.ZipFile(self.filename + parser.POSTFIX, 'w',
47 allowZip64=True)
48 for item in zipin.infolist():
49 zipin.extract(item)
50 if os.path.isfile(item.filename):
51 try:
52 cfile = mat.create_class_file(item.filename, False)
53 cfile.remove_all()
54 logging.debug('Processing %s from %s' % (item.filename,
55 self.filename))
56 except:
57 print('%s\' filefomart is not supported'%item.filename)
58 zipout.write(item.filename)
59 else:
60 self.folder_list.insert(0, item.filename)
61 logging.info('%s treated' % self.filename)
62 self.remove_folder()
63 zipin.close()
64 zipout.close()
43 65
44class TarStripper(GenericArchiveStripper): 66class TarStripper(GenericArchiveStripper):
45 def _remove(self, current_file): 67 def _remove(self, current_file):