#!/usr/bin/env python

import argparse
import logging
import os

import pikka_bird_collector.app


DEFAULTS = {
    'command':    'collect',
    'server_uri': 'http://localhost:5000',
    'format':     'binary',
    'log_level':  'INFO'}

parser = argparse.ArgumentParser(
    description="Pikka Bird ops monitoring tool Collector component.")

parser.add_argument('-X', '--command',
    metavar='COMMAND',
    choices=['collect'],
    default=DEFAULTS['command'],
    help="command (default: %(command)s)" % DEFAULTS)

parser.add_argument('-s', '--server-uri',
    metavar='SERVER_URI',
    default=DEFAULTS['server_uri'],
    help="server URI (default: %(server_uri)s))" % DEFAULTS)

parser.add_argument('-c', '--conf',
    metavar='CONF',
    help="conf")

parser.add_argument('--format',
    metavar='FORMAT',
    choices=['binary', 'json'],
    default=DEFAULTS['format'],
    help="format (default: %(format)s)" % DEFAULTS)

parser.add_argument('--log-level',
    metavar='LOG_LEVEL',
    choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'],
    default=DEFAULTS['log_level'],
    help="log-level (default: %(log_level)s))" % DEFAULTS)

parser.add_argument('-e', '--eternal',
    metavar='ETERNAL',
    type=int,
    help="run eternally, every ETERNAL s")

parser.add_argument('-v', '--version',
    action='version',
    version="Pikka Bird Collector v%(v)s" % { 'v': pikka_bird_collector.__version__ })

args = parser.parse_args()


logger = logging.getLogger(str(os.getpid()))

formatter = logging.Formatter(
    '[%(asctime)s] %(levelname)s -- %(name)s: %(message)s')

ch = logging.StreamHandler()
ch.setFormatter(formatter)

logger.setLevel(args.log_level)
logger.addHandler(ch)


if args.command == 'collect':
    app = pikka_bird_collector.app.App(args, logger)
    app.run()
