@@ -26,6 +26,15 @@ def _process_filename_by_line(pattern, filename):
2626 output .write_line (line .rstrip (b'\r \n ' ))
2727 return retv
2828
29+ def _process_filename_at_once (pattern , filename ):
30+ retv = 0
31+ with open (filename , 'rb' ) as f :
32+ match = pattern .search (f .read ())
33+ if match :
34+ retv = 1
35+ output .write ('{}:' .format (filename ))
36+ output .write_line (match .group ())
37+ return retv
2938
3039def run_hook (prefix , hook , file_args ):
3140 exe = (sys .executable , '-m' , __name__ )
@@ -42,6 +51,7 @@ def main(argv=None):
4251 ),
4352 )
4453 parser .add_argument ('-i' , '--ignore-case' , action = 'store_true' )
54+ parser .add_argument ('-z' , '--null-data' , action = 'store_true' )
4555 parser .add_argument ('pattern' , help = 'python regex pattern.' )
4656 parser .add_argument ('filenames' , nargs = '*' )
4757 args = parser .parse_args (argv )
@@ -51,7 +61,10 @@ def main(argv=None):
5161
5262 retv = 0
5363 for filename in args .filenames :
54- retv |= _process_filename_by_line (pattern , filename )
64+ if args .null_data :
65+ retv |= _process_filename_at_once (pattern , filename )
66+ else :
67+ retv |= _process_filename_by_line (pattern , filename )
5568 return retv
5669
5770
0 commit comments