Skip to content

Commit 08c69b7

Browse files
authored
Preventing cloner from throwing unbound error (#320)
* Prevent unbound error with the end variable
1 parent f4a281c commit 08c69b7

File tree

1 file changed

+47
-22
lines changed

1 file changed

+47
-22
lines changed

bin/clone

+47-22
Original file line numberDiff line numberDiff line change
@@ -21,61 +21,86 @@ from datetime import datetime
2121

2222
from snare.cloner import Cloner
2323
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)
2526

2627

2728
def main():
2829
loop = asyncio.get_event_loop()
2930
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+
)
3240
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+
)
3553
args = parser.parse_args()
36-
default_path = os.path.join(args.path, 'snare')
54+
default_path = os.path.join(args.path, "snare")
3755

3856
if args.log_path:
3957
log_file = os.path.join(args.log_path, "clone.log")
4058
else:
41-
log_file = os.path.join(default_path, 'clone.log')
59+
log_file = os.path.join(default_path, "clone.log")
4260

4361
try:
4462
check_privileges(default_path)
4563
check_privileges(os.path.dirname(log_file))
4664
except PermissionError as err:
47-
print_color(err, 'WARNING')
65+
print_color(err, "WARNING")
4866
sys.exit(1)
4967

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))
5270

5371
logger.Logger.create_clone_logger(log_file, __package__)
5472
print_color(" Logs will be stored in {}".format(log_file), "INFO", end="")
73+
start = datetime.now()
5574
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+
)
5878
loop.run_until_complete(cloner.get_root_host())
5979
loop.run_until_complete(cloner.run())
60-
end = datetime.now()-start
80+
end = datetime.now() - start
6181
except KeyboardInterrupt:
62-
end = datetime.now()-start
82+
end = datetime.now() - start
6383
finally:
6484
print("")
65-
print_color("-"*36+">SUMMARY<"+"-"*36, "INFO")
66-
print_color('\tTotal number of URLs cloned: {}'.format(str(cloner.counter)), "INFO")
67-
print_color('\tTime elapsed: {}'.format(str(end)), "INFO")
68-
print_color('\tCloned 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+
"\tTotal number of URLs cloned: {}".format(str(cloner.counter)), "INFO"
89+
)
90+
print_color("\tTime elapsed: {}".format(str(end)), "INFO")
91+
print_color("\tCloned directory: {}".format(cloner.target_path), "INFO")
92+
print_color("-" * 82, "INFO")
7093

7194

72-
if __name__ == '__main__':
73-
print("""
95+
if __name__ == "__main__":
96+
print(
97+
"""
7498
______ __ ______ _ ____________
7599
/ ____// / / __ // | / / ____/ __ \\
76100
/ / / / / / / // |/ / __/ / /_/ /
77101
/ /___ / /____ / /_/ // /| / /___/ _, _/
78102
/_____//______//_____//_/ |_/_____/_/ |_|
79103
80-
""")
104+
"""
105+
)
81106
main()

0 commit comments

Comments
 (0)