diff --git a/main.py b/main.py index d3c2982..0e3af54 100755 --- a/main.py +++ b/main.py @@ -22,29 +22,20 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -import config -import psutil -import os -import time -import log -import requests -import threading -import signal -import socket -from functools import partial -from concurrent.futures import ThreadPoolExecutor, as_completed -from bs4 import BeautifulSoup -from log import logsManager -from datetime import datetime +def get_pip_command(): + + if sys.version_info >= (3, 0): -if config.loggingMode == 'rabbitmq': + return 'pip3' - import rabbitmq - rabbitmq = rabbitmq.rabbitMQClient(config.rabbitmqca,config.rabbitmqcacert,config.rabbitmqcakey,config.rabbitmqHost,config.rabbitmqPort,config.rabbitmqRoutingKey) + else: -stop_event = threading.Event() -nonPOSIXCPULoads = [] -lock = threading.Lock() + return 'pip' + +def install_dependencies(): + + pip_command = get_pip_command() + subprocess.check_call([pip_command, 'install', '-r', 'requirements.txt', '--user']) def signal_handler(sig, frame): print('SIGINT/SIGTERM aknowledged. Stopping script gracefully, please wait...') @@ -199,6 +190,21 @@ def logURLLog(hostname, logTime, url, responseTime): def main(): + if sys.platform.startswith('win'): + + import win32api + + win32api.SetConsoleCtrlHandler(lambda sig, frame: + + signal_handler(signal.CTRL_C_EVENT, frame), True) + + else: + + signal.signal(signal.SIGTERM, signal_handler) + signal.signal(signal.SIGINT, signal_handler) + + install_dependencies() + signal.signal(signal.SIGTERM, signal_handler) signal.signal(signal.SIGINT, signal_handler) @@ -212,4 +218,34 @@ def main(): urlMonitorThread.join() if __name__ == "__main__": + + import sys + import subprocess + + install_dependencies() + + import config + import psutil + import os + import time + import log + import requests + import threading + import signal + import socket + from functools import partial + from concurrent.futures import ThreadPoolExecutor, as_completed + from bs4 import BeautifulSoup + from log import logsManager + from datetime import datetime + + if config.loggingMode == 'rabbitmq': + + import rabbitmq + rabbitmq = rabbitmq.rabbitMQClient(config.rabbitmqca,config.rabbitmqcacert,config.rabbitmqcakey,config.rabbitmqHost,config.rabbitmqPort,config.rabbitmqRoutingKey) + + stop_event = threading.Event() + nonPOSIXCPULoads = [] + lock = threading.Lock() + main() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a760dfd --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +psutil +requests +bs4 +datetime