Exemple #1
0
def main():    
    try:
        args = run_parser(sys.argv[1:])

        if not validate_parameters(args):
            raise Exception('Invalid parameters')

        auth_keys = Keys.load_from_file(args.s)
        method = get_method(args, auth_keys)
        run_method(method)
    except IOError as e:
        handle_failure()
        sys.exit(63)
    except Exception as e:
        handle_failure()
        sys.exit(255)
Exemple #2
0
def start_server(port, auth_file_path):
    handler = bankhandler.BankHandler()
    term_handler = handler.termination_hook()

    auth_keys = Keys.random()
    auth_keys.export_auth_file(auth_file_path)

    term_socket = banksocket.listen('0.0.0.0', port, handler, auth_keys)

    def sigterm_hook(signum, stack_frame):
        nonlocal term_socket, term_handler

        term_socket()
        term_handler()
        print('Finished terminating', file=sys.stderr)

    signal.signal(signal.SIGTERM, sigterm_hook)
    signal.signal(signal.SIGINT, sigterm_hook)

    handler.serve_forever()