1414import sys
1515import time
1616from collections import Counter
17+ from itertools import chain
1718
1819from . import __version__
1920from .compat import binary_stdin , binary_stdout
@@ -62,12 +63,12 @@ def add_argument(self, parser):
6263 version = __version__ )
6364 )
6465
65- parser .add_argument ('-i' , '--input ' ,
66- help = 'input file to be processed (default: stdin)' ,
66+ parser .add_argument ('-i' , '--inputs ' ,
67+ help = 'input files to be processed (default: stdin)' ,
6768 nargs = '+' ,
6869 type = argparse .FileType ('rb' ),
6970 default = [binary_stdin ],
70- dest = 'input ' )
71+ dest = 'inputs ' )
7172
7273 parser .add_argument ('-l' , '--loglevel' ,
7374 help = 'log level (default: NOTSET)' ,
@@ -96,9 +97,8 @@ def add_argument(self, parser):
9697 super (MakePatternCommand , self ).add_argument (parser )
9798 parser .add_argument ('-c' , '--config' ,
9899 help = 'config file' ,
99- nargs = '+' ,
100+ nargs = 1 ,
100101 type = argparse .FileType ('r' ),
101- action = 'store' ,
102102 dest = 'config' )
103103
104104 parser .add_argument ('-f' , '--formatter' ,
@@ -114,7 +114,7 @@ def _load(self, pattern_maker, args):
114114 stats = Counter ()
115115 with LogSpeedAdapter (self ._logger , 5000 ) as speed_logger :
116116 load = pattern_maker .load
117- for line in args .input [ 0 ] :
117+ for line in chain . from_iterable ( args .inputs ) :
118118 speed_logger .debug ('[LOADING]' )
119119 stats ['ALL' ] += 1
120120 line = line .strip ()
@@ -164,13 +164,12 @@ def __init__(self):
164164
165165 def add_argument (self , parser ):
166166 super (MatchPatternCommand , self ).add_argument (parser )
167- parser .add_argument ('-p' , '--pattern-file ' ,
168- help = 'pattern file to be loaded' ,
167+ parser .add_argument ('-p' , '--pattern-files ' ,
168+ help = 'pattern files to be loaded' ,
169169 nargs = '+' ,
170170 type = argparse .FileType ('rb' ),
171171 required = True ,
172- action = 'store' ,
173- dest = 'pattern_file' )
172+ dest = 'pattern_files' )
174173
175174 parser .add_argument ('-a' , '--all_matched' ,
176175 help = 'all matched patterns' ,
@@ -180,11 +179,14 @@ def add_argument(self, parser):
180179
181180 def _load (self , pattern_matcher , args ):
182181 stats = Counter ()
183- io_input = args .pattern_file [0 ]
184- self ._logger .debug ('[LOAD] Pattrn file: %s' , io_input .name )
182+ p_inputs = args .pattern_files
183+ self ._logger .debug ('[LOAD] %d pattern file%s: %s' ,
184+ len (p_inputs ),
185+ 's' if len (p_inputs ) > 1 else '' ,
186+ ', ' .join ([p .name for p in p_inputs ]))
185187 with LogSpeedAdapter (self ._logger , 1000 ) as speed_logger :
186188 load = pattern_matcher .load
187- for line in io_input :
189+ for line in chain . from_iterable ( p_inputs ) :
188190 speed_logger .debug ('[LOADING]' )
189191 stats ['ALL' ] += 1
190192 line = line .rstrip ()
@@ -225,7 +227,7 @@ def _match_result(self, pattern_matcher, raw_url, args):
225227 def _match (self , pattern_matcher , args ):
226228 speed_logger = LogSpeedAdapter (self ._logger , 5000 )
227229 write = binary_stdout .write
228- for line in args .input [ 0 ] :
230+ for line in chain . from_iterable ( args .inputs ) :
229231 speed_logger .debug ('[MATCHING]' )
230232 line = line .strip ()
231233 result = self ._match_result (pattern_matcher , line , args )
0 commit comments