-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmodule.py
39 lines (33 loc) · 1.6 KB
/
module.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from json import loads
from os import system
from constants import MODULE_FILEPATH, MODULE_INSTRUCTIION_ATTR, MODULE_SHOULD_RUN_ATTR
import colors
def load_modules(domain, directory):
try:
f = open(MODULE_FILEPATH)
modules = loads(f.read());
return normalize_nodules(domain, directory, modules).values()
except Exception as err:
print(f'{colors.FAIL}Error - load_modules():{colors.ENDC}', err)
finally:
f.close()
def normalize_nodules(domain, directory, modules):
for module_key in modules:
current_modules = modules[module_key]['modules']
for current_module in current_modules:
normalize_should_run = True if current_module[MODULE_SHOULD_RUN_ATTR] == "True" else False
normalize_instruction = current_module[MODULE_INSTRUCTIION_ATTR].replace('{domain}', domain).replace('{directory}', directory)
current_module[MODULE_SHOULD_RUN_ATTR] = normalize_should_run
current_module[MODULE_INSTRUCTIION_ATTR] = normalize_instruction
return modules
def run_module(module):
if module == None:
return
elif 'modules' in module:
run_module(module['modules'])
elif isinstance(module, list):
for current_module in module:
if current_module['should_run'] == True:
print(f'{colors.OKGREEN}[+]{colors.ENDC} Running module {colors.OKBLUE}({current_module["module_name"]}){colors.ENDC}')
system(current_module['instruction'])
print(f'{colors.OKGREEN}[+]{colors.ENDC} Done \n')