diff options
| author | jvoisin | 2011-06-29 16:19:14 +0200 |
|---|---|---|
| committer | jvoisin | 2011-06-29 16:19:14 +0200 |
| commit | ccf4845ed33b264c7385bae338bbbe338368e903 (patch) | |
| tree | cfd1978704cd51e5b83899908b7ec928c9470981 /lib | |
| parent | 9df7b643c98e7693e8e1cad6c808e478bacf2d2d (diff) | |
Preliminary support of internal metadata for archives
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/archive.py | 16 |
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 | |||
| 2 | import sys | 2 | import sys |
| 3 | import parser | 3 | import parser |
| 4 | import mat | 4 | import mat |
| 5 | import shutil | ||
| 5 | import os | 6 | import os |
| 6 | 7 | ||
| 7 | class TarStripper(parser.Generic_parser): | 8 | class 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 | |||
| 63 | class GzipStripper(TarStripper): | 73 | class 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, |
