diff options
| author | jvoisin | 2011-07-23 19:16:58 +0200 |
|---|---|---|
| committer | jvoisin | 2011-07-23 19:16:58 +0200 |
| commit | fb7d3d5fa605596d419a5ea3950827c59c53c942 (patch) | |
| tree | 1524a60372a0a40ba0001ee9a2a444d177bba7c8 /lib | |
| parent | 88665c9ffa82afd9689ed5bd211c7136853e809b (diff) | |
Add handling of the "comment" field on a zip archive
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/archive.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/archive.py b/lib/archive.py index 2ee817e..33fe6e7 100644 --- a/lib/archive.py +++ b/lib/archive.py | |||
| @@ -40,6 +40,8 @@ class ZipStripper(GenericArchiveStripper): | |||
| 40 | 40 | ||
| 41 | def is_clean(self): | 41 | def is_clean(self): |
| 42 | zipin = zipfile.ZipFile(self.filename, 'r') | 42 | zipin = zipfile.ZipFile(self.filename, 'r') |
| 43 | if zipin.comment != '': | ||
| 44 | return False | ||
| 43 | for item in zipin.infolist(): | 45 | for item in zipin.infolist(): |
| 44 | if not self.is_file_clean(item): | 46 | if not self.is_file_clean(item): |
| 45 | return False | 47 | return False |
| @@ -69,6 +71,7 @@ class ZipStripper(GenericArchiveStripper): | |||
| 69 | zipmeta['system'] = field.create_system | 71 | zipmeta['system'] = field.create_system |
| 70 | zipmeta['zip_version'] = field.create_version | 72 | zipmeta['zip_version'] = field.create_version |
| 71 | metadata[field.filename] = zipmeta | 73 | metadata[field.filename] = zipmeta |
| 74 | metadata["%s comment" % self.filename] = zipin.comment | ||
| 72 | zipin.close() | 75 | zipin.close() |
| 73 | return metadata | 76 | return metadata |
| 74 | 77 | ||
| @@ -94,6 +97,7 @@ class ZipStripper(GenericArchiveStripper): | |||
| 94 | mat.secure_remove(item.filename) | 97 | mat.secure_remove(item.filename) |
| 95 | else: | 98 | else: |
| 96 | self.folder_list.insert(0, item.filename) | 99 | self.folder_list.insert(0, item.filename) |
| 100 | zipout.comment = '' | ||
| 97 | logging.info('%s treated' % self.filename) | 101 | logging.info('%s treated' % self.filename) |
| 98 | self.remove_folder() | 102 | self.remove_folder() |
| 99 | zipin.close() | 103 | zipin.close() |
