@@ -21,61 +21,86 @@ from datetime import datetime
21
21
22
22
from snare .cloner import Cloner
23
23
from snare .utils import logger
24
- from snare .utils .snare_helpers import check_privileges , print_color , str_to_bool
24
+ from snare .utils .snare_helpers import (check_privileges , print_color ,
25
+ str_to_bool )
25
26
26
27
27
28
def main ():
28
29
loop = asyncio .get_event_loop ()
29
30
parser = argparse .ArgumentParser ()
30
- parser .add_argument ("--target" , help = "domain of the site to be cloned" , required = True )
31
- parser .add_argument ("--max-depth" , help = "max depth of the cloning" , required = False , default = sys .maxsize )
31
+ parser .add_argument (
32
+ "--target" , help = "domain of the site to be cloned" , required = True
33
+ )
34
+ parser .add_argument (
35
+ "--max-depth" ,
36
+ help = "max depth of the cloning" ,
37
+ required = False ,
38
+ default = sys .maxsize ,
39
+ )
32
40
parser .add_argument ("--log-path" , help = "path to the log file" )
33
- parser .add_argument ("--css-validate" , help = "set whether css validation is required" , type = str_to_bool , default = None )
34
- parser .add_argument ("--path" , help = "path to save the page to be cloned" , required = False , default = "/opt/" )
41
+ parser .add_argument (
42
+ "--css-validate" ,
43
+ help = "set whether css validation is required" ,
44
+ type = str_to_bool ,
45
+ default = None ,
46
+ )
47
+ parser .add_argument (
48
+ "--path" ,
49
+ help = "path to save the page to be cloned" ,
50
+ required = False ,
51
+ default = "/opt/" ,
52
+ )
35
53
args = parser .parse_args ()
36
- default_path = os .path .join (args .path , ' snare' )
54
+ default_path = os .path .join (args .path , " snare" )
37
55
38
56
if args .log_path :
39
57
log_file = os .path .join (args .log_path , "clone.log" )
40
58
else :
41
- log_file = os .path .join (default_path , ' clone.log' )
59
+ log_file = os .path .join (default_path , " clone.log" )
42
60
43
61
try :
44
62
check_privileges (default_path )
45
63
check_privileges (os .path .dirname (log_file ))
46
64
except PermissionError as err :
47
- print_color (err , ' WARNING' )
65
+ print_color (err , " WARNING" )
48
66
sys .exit (1 )
49
67
50
- if not os .path .exists (' {}/pages' .format (default_path )):
51
- os .makedirs (' {}/pages' .format (default_path ))
68
+ if not os .path .exists (" {}/pages" .format (default_path )):
69
+ os .makedirs (" {}/pages" .format (default_path ))
52
70
53
71
logger .Logger .create_clone_logger (log_file , __package__ )
54
72
print_color (" Logs will be stored in {}" .format (log_file ), "INFO" , end = "" )
73
+ start = datetime .now ()
55
74
try :
56
- start = datetime .now ()
57
- cloner = Cloner (args .target , int (args .max_depth ), args .css_validate , default_path )
75
+ cloner = Cloner (
76
+ args .target , int (args .max_depth ), args .css_validate , default_path
77
+ )
58
78
loop .run_until_complete (cloner .get_root_host ())
59
79
loop .run_until_complete (cloner .run ())
60
- end = datetime .now ()- start
80
+ end = datetime .now () - start
61
81
except KeyboardInterrupt :
62
- end = datetime .now ()- start
82
+ end = datetime .now () - start
63
83
finally :
64
84
print ("" )
65
- print_color ("-" * 36 + ">SUMMARY<" + "-" * 36 , "INFO" )
66
- print_color ('\t Total number of URLs cloned: {}' .format (str (cloner .counter )), "INFO" )
67
- print_color ('\t Time elapsed: {}' .format (str (end )), "INFO" )
68
- print_color ('\t Cloned directory: {}' .format (cloner .target_path ), "INFO" )
69
- print_color ('-' * 82 , "INFO" )
85
+ end = datetime .now () - start
86
+ print_color ("-" * 36 + ">SUMMARY<" + "-" * 36 , "INFO" )
87
+ print_color (
88
+ "\t Total number of URLs cloned: {}" .format (str (cloner .counter )), "INFO"
89
+ )
90
+ print_color ("\t Time elapsed: {}" .format (str (end )), "INFO" )
91
+ print_color ("\t Cloned directory: {}" .format (cloner .target_path ), "INFO" )
92
+ print_color ("-" * 82 , "INFO" )
70
93
71
94
72
- if __name__ == '__main__' :
73
- print ("""
95
+ if __name__ == "__main__" :
96
+ print (
97
+ """
74
98
______ __ ______ _ ____________
75
99
/ ____// / / __ // | / / ____/ __ \\
76
100
/ / / / / / / // |/ / __/ / /_/ /
77
101
/ /___ / /____ / /_/ // /| / /___/ _, _/
78
102
/_____//______//_____//_/ |_/_____/_/ |_|
79
103
80
- """ )
104
+ """
105
+ )
81
106
main ()
0 commit comments