diff options
| author | jvoisin | 2011-06-25 19:48:01 +0200 |
|---|---|---|
| committer | jvoisin | 2011-06-25 19:48:01 +0200 |
| commit | d39caff87bab6d86da10781f2d70066058876872 (patch) | |
| tree | b6ea634883b42c79c5d664a594fcd65dce772db4 /lib | |
| parent | 321b024daee08992495a80e2f998a5913c5b0a49 (diff) | |
Full anonymisation of the content of an tar archive.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/archive.py | 11 |
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 | |||
| 2 | import sys | 2 | import sys |
| 3 | import parser | 3 | import parser |
| 4 | import mat | 4 | import mat |
| 5 | import shutil | ||
| 5 | 6 | ||
| 6 | class TarStripper(parser.Generic_parser): | 7 | class 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 | |||
