#!/usr/bin/env python

import argparse
import logging
import sys

from gcloud_tasks_emulator.server import create_server

# Random, apparently not often used
DEFAULT_PORT = 9022


def main(host, port):
    server = create_server(host, port)
    return server.run()


if __name__ == '__main__':
    print("Starting Cloud Tasks Emulator")

    parser = argparse.ArgumentParser(description='Google Cloud Task Emulator')
    subparsers = parser.add_subparsers(title='subcommands', dest="subcommand")

    start = subparsers.add_parser('start', help='start the emulator')
    start.add_argument(
        "-p", "--port",
        type=int, help='the port to run the server on', default=DEFAULT_PORT
    )
    start.add_argument("-q", "--quiet", action="store_true", default=False)

    args = parser.parse_args()
    if args.subcommand != "start":
        parser.print_usage()
        sys.exit(1)

    root = logging.getLogger()
    root.addHandler(logging.StreamHandler())

    if args.quiet:
        root.setLevel(logging.CRITICAL)
    else:
        root.setLevel(logging.INFO)

    sys.exit(main("localhost", args.port))
