summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorjvoisin2011-06-29 16:19:14 +0200
committerjvoisin2011-06-29 16:19:14 +0200
commitccf4845ed33b264c7385bae338bbbe338368e903 (patch)
treecfd1978704cd51e5b83899908b7ec928c9470981 /lib
parent9df7b643c98e7693e8e1cad6c808e478bacf2d2d (diff)
Preliminary support of internal metadata for archives
Diffstat (limited to 'lib')
-rw-r--r--lib/archive.py16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/archive.py b/lib/archive.py
index 17b56c3..4162780 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
5import os 6import os
6 7
7class TarStripper(parser.Generic_parser): 8class TarStripper(parser.Generic_parser):
@@ -26,15 +27,19 @@ class TarStripper(parser.Generic_parser):
26 mat.secure_remove(current_file.name) 27 mat.secure_remove(current_file.name)
27 else: 28 else:
28 self.folder_list.insert(0, current_file.name) 29 self.folder_list.insert(0, current_file.name)
30 self.tarin.close()
29 31
30 for folder in self.folder_list: #delete remainings folders 32 for folder in self.folder_list: #delete remainings folders
31 shutil.rmtree(folder) 33 shutil.rmtree(folder)
32 34
33 #meta from the tar itself 35 #meta from the tar itself
34 self.tarout.mtime = None 36 for current_file in self.tarout.getmembers():
35 37 current_file.mtime = None
38 current_file.uid = 0
39 current_file.gid = 0
40 current_file.uname = ''
41 current_file.gname = ''
36 self.tarout.close() 42 self.tarout.close()
37 self.tarin.close()
38 43
39 if self.backup is False: 44 if self.backup is False:
40 mat.secure_remove(self.filename) 45 mat.secure_remove(self.filename)
@@ -60,6 +65,11 @@ class TarStripper(parser.Generic_parser):
60 self.folder_list = [] 65 self.folder_list = []
61 return False 66 return False
62 67
68 def get_meta(self):
69 self.tarin = tarfile.open(self.filename, 'r' + self.compression)
70 metadata = {}
71 return metadata
72
63class GzipStripper(TarStripper): 73class GzipStripper(TarStripper):
64 def __init__(self, realname, filename, parser, editor, backup): 74 def __init__(self, realname, filename, parser, editor, backup):
65 super(GzipStripper, self).__init__(realname, 75 super(GzipStripper, self).__init__(realname,