summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/archive.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/archive.py b/lib/archive.py
index c8203c9..f7649d5 100644
--- a/lib/archive.py
+++ b/lib/archive.py
@@ -2,6 +2,7 @@ import tarfile
2import sys 2import sys
3import parser 3import parser
4import mat 4import mat
5import shutil
5 6
6class TarStripper(parser.Generic_parser): 7class TarStripper(parser.Generic_parser):
7 def remove_all(self): 8 def remove_all(self):
@@ -11,6 +12,7 @@ class TarStripper(parser.Generic_parser):
11 12
12 tarin = tarfile.open(self.filename, 'r') 13 tarin = tarfile.open(self.filename, 'r')
13 tarout = tarfile.open(self.filename + parser.POSTFIX, 'w') 14 tarout = tarfile.open(self.filename + parser.POSTFIX, 'w')
15 folder_list = []
14 16
15 for current_file in tarin.getmembers(): 17 for current_file in tarin.getmembers():
16 tarin.extract(current_file) 18 tarin.extract(current_file)
@@ -19,6 +21,12 @@ class TarStripper(parser.Generic_parser):
19 class_file = mat.create_class_file(current_file.name, False) 21 class_file = mat.create_class_file(current_file.name, False)
20 class_file.remove_all() 22 class_file.remove_all()
21 tarout.add(current_file.name) 23 tarout.add(current_file.name)
24 class_file.secure_remove()
25 else:
26 folder_list.insert(0, current_file.name)
27
28 for folder in folder_list: #delete remainings folders
29 shutil.rmtree(folder)
22 30
23 #meta from the tar itself 31 #meta from the tar itself
24 tarout.mtime = None 32 tarout.mtime = None
@@ -28,6 +36,3 @@ class TarStripper(parser.Generic_parser):
28 36
29 def is_clean(self): 37 def is_clean(self):
30 return False 38 return False
31
32
33