mirror of https://github.com/OWASP/Nettacker.git
67 lines
2.3 KiB
Python
67 lines
2.3 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
from glob import glob
|
|
from core.alert import messages
|
|
from core.alert import info
|
|
from core.alert import warn
|
|
from core._die import __die_failure
|
|
|
|
|
|
def load_all_graphs():
|
|
graph_names = []
|
|
for lib in glob('lib/graph/*/engine.py'):
|
|
lib = lib.rsplit('\\' if sys.platform == 'win32' or sys.platform == 'win64' else '/')[-2]
|
|
if lib + '_graph' not in graph_names:
|
|
graph_names.append(lib + '_graph')
|
|
return graph_names
|
|
|
|
|
|
def load_all_modules():
|
|
# Search for Modules
|
|
module_names = []
|
|
for lib in glob('lib/*/*/engine.py'):
|
|
libname = lib.rsplit('\\' if sys.platform == 'win32' or sys.platform == 'win64' else '/')[-2]
|
|
category = lib.rsplit('\\' if sys.platform == 'win32' or sys.platform == 'win64' else '/')[1]
|
|
if category != 'graph' and libname + '_' + category not in module_names:
|
|
module_names.append(libname + '_' + category)
|
|
module_names.append('all')
|
|
return module_names
|
|
|
|
|
|
def load_all_method_args(language):
|
|
module_names = []
|
|
modules_args = {}
|
|
# get module names
|
|
for lib in glob('lib/*/*/engine.py'):
|
|
lib = lib.replace('/', '.').replace('\\', '.').rsplit('.py')[0]
|
|
if lib.rsplit('.')[1] != 'graph' and lib not in module_names:
|
|
module_names.append(lib)
|
|
# get args
|
|
for imodule in module_names:
|
|
try:
|
|
extra_requirements_dict = getattr(__import__(imodule, fromlist=['extra_requirements_dict']),
|
|
'extra_requirements_dict')
|
|
except:
|
|
warn(messages(language, 112).format(imodule))
|
|
imodule_args = extra_requirements_dict()
|
|
modules_args[imodule] = []
|
|
for imodule_arg in imodule_args:
|
|
modules_args[imodule].append(imodule_arg)
|
|
for imodule in modules_args:
|
|
info(imodule.rsplit('.')[2] + '_' + imodule.rsplit('.')[1] + ' --> '
|
|
+ ", ".join(modules_args[imodule]))
|
|
return module_names
|
|
|
|
|
|
def __check_external_modules():
|
|
external_modules = ["argparse", "netaddr", "requests", "paramiko", "texttable", "socks", "win_inet_pton",
|
|
"flask"]
|
|
for module in external_modules:
|
|
try:
|
|
__import__(module)
|
|
except:
|
|
__die_failure("pip install -r requirements.txt")
|
|
return True
|