18
18
import re
19
19
import time
20
20
import imp
21
- import getopt
21
+ import argparse
22
22
23
23
try :
24
24
from config .Config import *
@@ -311,25 +311,6 @@ def is_keyword_valid(keyword):
311
311
return False
312
312
313
313
314
- def is_level_valid (level ):
315
- """
316
- Verify search level config is valid
317
- :param level: Search level
318
- :returns: False if invalid, True if valid
319
- """
320
- if isinstance (level , int ) and level in range (1 , 6 ):
321
- return True
322
- else :
323
- return False
324
-
325
-
326
- def usage ():
327
- print 'USAGE:'
328
- print '\t -l\t Set level for searching within 1~5, default level is 1.'
329
- print '\t -k\t Set key words for searching projects.'
330
- print '\t -h\t Show help information.'
331
- exit ()
332
-
333
314
if __name__ == "__main__" :
334
315
# Verify lxml module is installed
335
316
try :
@@ -339,32 +320,30 @@ def usage():
339
320
exit ()
340
321
341
322
# Get command parameters for searching level and key words
342
- try :
343
- opts , args = getopt .getopt (sys .argv [1 :], "hl:k:" )
344
- if not opts :
345
- usage ()
346
- except getopt .GetoptError :
347
- usage ()
323
+ parser = argparse .ArgumentParser (description = "Searching sensitive file and content in GitHub." )
324
+ parser .add_argument ("-l" , "--level" , type = int , choices = range (1 , 6 ), default = 1 , metavar = "level" ,
325
+ help = "Set level for searching within 1~5, default level is 1." )
326
+ parser .add_argument ("-k" , "--keywords" , metavar = "keywords" , required = True ,
327
+ help = "Set key words for searching projects." )
328
+ parser .add_argument ("-u" , "--user" , metavar = "username" , required = True ,
329
+ help = "Execution user email for notifying searching results." )
330
+ args = parser .parse_args ()
348
331
349
332
keyword_string = ""
350
333
execution_user = ""
351
- for op , value in opts :
352
- if op == '-l' :
353
- SEARCH_LEVEL = int (value )
354
- elif op == '-k' :
355
- keyword_string = value
356
- elif op == '-h' :
357
- usage ()
334
+ if args .level :
335
+ SEARCH_LEVEL = args .level
336
+ if args .keywords :
337
+ keyword_string = args .keywords
338
+ if args .user :
339
+ execution_user = args .user
358
340
359
341
# Print GitPrey digital logo and version information.
360
342
info_print (GitPrey .__doc__ )
361
343
362
344
if not is_keyword_valid (keyword_string ):
363
345
error_print ("[!_!]ERROR INFO: The key words you input are invalid. Please input again." )
364
346
exit ()
365
- elif not is_level_valid (SEARCH_LEVEL ):
366
- error_print ("[!_!]ERROR INFO: Searching level must in 1~5." )
367
- exit ()
368
347
else :
369
348
keyword_output = "[^_^]START INFO: The key words for searching are: {keyword}"
370
349
info_print (keyword_output .format (keyword = keyword_string ))
0 commit comments