#!/usr/bin/python3
# -*- coding: UTF-8 -*-

from pjsipcheck.utils.logger import Logger
from pjsipcheck import pjsipcheck
from pjsipcheck import settings

import argparse
import sys
import signal


def set_exit_handler(func):
    signal.signal(signal.SIGTERM, func)


def on_exit(sig, func=None):
    sys.exit(1)


if __name__ == '__main__':
    log = Logger().setup(
        logfile=settings.CONFIG.get_log('file'),
        loglevel=settings.CONFIG.get_log('level')
    )

    checker = pjsipcheck.PJSIPCheck()

    set_exit_handler(on_exit)

    try:
        parser = argparse.ArgumentParser(
            description='PJSIPCheck -- Baneador de IPs en Asterisk con soporte para SIP y PJSIP'
        )

        p_args = parser.parse_args()

        checker.main()

    except KeyboardInterrupt:
        log.warning("Keyboard stopped detected...")

    except Exception as ex:
        log.exception(str(ex))
        raise

    finally:
        log.info("PJSIPCheck Stopped!!")
        sys.exit(1)
