diff options
| author | jvoisin | 2011-07-24 02:28:59 +0200 |
|---|---|---|
| committer | jvoisin | 2011-07-24 02:28:59 +0200 |
| commit | bcc0ad2e7491c212ef35ca250fb8c5f2c53572da (patch) | |
| tree | 18415bc3ad14bfeeb65f84b5767cecc950e8a041 /lib | |
| parent | e05c88fccc364984b704acff78e96005f4cb4848 (diff) | |
more abstraction, and support for "dirty cleaning" for .tar.*
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/archive.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/archive.py b/lib/archive.py index 0c3bb15..d7d3509 100644 --- a/lib/archive.py +++ b/lib/archive.py | |||
| @@ -24,6 +24,11 @@ class GenericArchiveStripper(parser.Generic_parser): | |||
| 24 | [shutil.rmtree(folder) for folder in self.folder_list] | 24 | [shutil.rmtree(folder) for folder in self.folder_list] |
| 25 | self.folder_list = [] | 25 | self.folder_list = [] |
| 26 | 26 | ||
| 27 | def remove_all(self): | ||
| 28 | self._remove_all('normal') | ||
| 29 | |||
| 30 | def remove_all_ugly(self): | ||
| 31 | self._remove_all('ugly') | ||
| 27 | 32 | ||
| 28 | class ZipStripper(GenericArchiveStripper): | 33 | class ZipStripper(GenericArchiveStripper): |
| 29 | def is_file_clean(self, file): | 34 | def is_file_clean(self, file): |
| @@ -75,11 +80,6 @@ class ZipStripper(GenericArchiveStripper): | |||
| 75 | zipin.close() | 80 | zipin.close() |
| 76 | return metadata | 81 | return metadata |
| 77 | 82 | ||
| 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 | 83 | ||
| 84 | def _remove_all(self, method): | 84 | def _remove_all(self, method): |
| 85 | zipin = zipfile.ZipFile(self.filename, 'r') | 85 | zipin = zipfile.ZipFile(self.filename, 'r') |
| @@ -125,7 +125,7 @@ class TarStripper(GenericArchiveStripper): | |||
| 125 | current_file.gname = '' | 125 | current_file.gname = '' |
| 126 | return current_file | 126 | return current_file |
| 127 | 127 | ||
| 128 | def remove_all(self): | 128 | def _remove_all(self, method): |
| 129 | tarin = tarfile.open(self.filename, 'r' + self.compression) | 129 | tarin = tarfile.open(self.filename, 'r' + self.compression) |
| 130 | tarout = tarfile.open(self.filename + parser.POSTFIX, | 130 | tarout = tarfile.open(self.filename + parser.POSTFIX, |
| 131 | 'w' + self.compression) | 131 | 'w' + self.compression) |
| @@ -136,7 +136,10 @@ class TarStripper(GenericArchiveStripper): | |||
| 136 | try: | 136 | try: |
| 137 | cfile = mat.create_class_file(current_file.name, False, | 137 | cfile = mat.create_class_file(current_file.name, False, |
| 138 | self.add2archive) | 138 | self.add2archive) |
| 139 | cfile.remove_all() | 139 | if method is 'normal': |
| 140 | cfile.remove_all() | ||
| 141 | else: | ||
| 142 | cfile.remove_all_ugly() | ||
| 140 | tarout.add(current_file.name, filter=self._remove) | 143 | tarout.add(current_file.name, filter=self._remove) |
| 141 | except: | 144 | except: |
| 142 | logging.info('%s\' format is not supported' % | 145 | logging.info('%s\' format is not supported' % |
