#!/usr/bin/python3

import argparse
import logging

from grove import config as grove_config
from grove import server as grove_server

parser = argparse.ArgumentParser(description='Start a Grove server.')
parser.add_argument('--agent-port', type=int, default=9998, help='port for grove agents')
parser.add_argument('--http-port', type=int, default=9999, help='port for http server')
parser.add_argument('--agent-timeout', type=int, default=120, help='agent timeout, in seconds')
parser.add_argument('--debug', action='store_true', help='use debug logging')
parser.add_argument('--directory', type=str, help='directory for caches and whatnot')
args = parser.parse_args()

config = grove_config.load_config(False, False)
debug = args.debug or config.get('debug', False)

logging.basicConfig(
  format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
  level=logging.DEBUG if debug else logging.INFO
)

try:
  grove_server.GroveServer(
    config,
    args.http_port,
    args.agent_port,
    args.agent_timeout,
    args.directory,
    debug
  ).run()
except KeyboardInterrupt as e:
  pass
