summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjvoisin2018-09-06 11:13:11 +0200
committerjvoisin2018-09-06 11:13:11 +0200
commit120b2049887842624013d6086152b7a96ce0faac (patch)
treeed02977718e2fda96ddba35e7dba36dc78f2b308
parentf3cef319b90a5a82ca879380c213651d74390a72 (diff)
Change a bit the previous commit
-rw-r--r--libmat2/__init__.py5
-rwxr-xr-xmat215
2 files changed, 11 insertions, 9 deletions
diff --git a/libmat2/__init__.py b/libmat2/__init__.py
index 8a5b064..101c7f1 100644
--- a/libmat2/__init__.py
+++ b/libmat2/__init__.py
@@ -2,7 +2,7 @@
2 2
3import os 3import os
4import collections 4import collections
5from enum import Enum 5import enum
6import importlib 6import importlib
7from typing import Dict, Optional 7from typing import Dict, Optional
8 8
@@ -64,7 +64,8 @@ def check_dependencies() -> dict:
64 64
65 return ret 65 return ret
66 66
67class UnknownMemberPolicy(Enum): 67@enum.unique
68class UnknownMemberPolicy(enum.Enum):
68 ABORT = 'abort' 69 ABORT = 'abort'
69 OMIT = 'omit' 70 OMIT = 'omit'
70 KEEP = 'keep' 71 KEEP = 'keep'
diff --git a/mat2 b/mat2
index 0aba8d1..23a09d3 100755
--- a/mat2
+++ b/mat2
@@ -10,8 +10,8 @@ import multiprocessing
10import logging 10import logging
11 11
12try: 12try:
13 from libmat2 import (parser_factory, UNSUPPORTED_EXTENSIONS, check_dependencies, 13 from libmat2 import parser_factory, UNSUPPORTED_EXTENSIONS
14 UnknownMemberPolicy) 14 from libmat2 import check_dependencies, UnknownMemberPolicy
15except ValueError as e: 15except ValueError as e:
16 print(e) 16 print(e)
17 sys.exit(1) 17 sys.exit(1)
@@ -44,7 +44,7 @@ def create_arg_parser():
44 help='show more verbose status information') 44 help='show more verbose status information')
45 parser.add_argument('--unknown-members', metavar='policy', default='abort', 45 parser.add_argument('--unknown-members', metavar='policy', default='abort',
46 help='how to handle unknown members of archive-style files (policy should' + 46 help='how to handle unknown members of archive-style files (policy should' +
47 ' be one of: ' + ', '.join([x.value for x in UnknownMemberPolicy]) + ')') 47 ' be one of: %s)' % ', '.join(p.value for p in UnknownMemberPolicy))
48 48
49 49
50 info = parser.add_mutually_exclusive_group() 50 info = parser.add_mutually_exclusive_group()
@@ -141,11 +141,12 @@ def main():
141 unknown_member_policy = UnknownMemberPolicy(args.unknown_members) 141 unknown_member_policy = UnknownMemberPolicy(args.unknown_members)
142 if unknown_member_policy == UnknownMemberPolicy.KEEP: 142 if unknown_member_policy == UnknownMemberPolicy.KEEP:
143 logging.warning('Keeping unknown member files may leak metadata in the resulting file!') 143 logging.warning('Keeping unknown member files may leak metadata in the resulting file!')
144 p = multiprocessing.Pool()
145 mode = (args.lightweight is True)
146 l = zip(__get_files_recursively(args.files), itertools.repeat(mode),
147 itertools.repeat(unknown_member_policy))
148 144
145 rep_mode = itertools.repeat(args.lightweight is True)
146 rep_policy = itertools.repeat(unknown_member_policy)
147 l = zip(__get_files_recursively(args.files), rep_mode, rep_policy)
148
149 p = multiprocessing.Pool()
149 ret = list(p.imap_unordered(clean_meta, list(l))) 150 ret = list(p.imap_unordered(clean_meta, list(l)))
150 return 0 if all(ret) else -1 151 return 0 if all(ret) else -1
151 152