#! /usr/bin/env python3
# -*- coding: utf-8 -*-
"""
.. module:: TODO
   :synopsis: TODO.

.. moduleauthor:: Aljosha Friemann <aljosha.friemann@gmail.com>

"""

import time, logging, sys, os

import click

import recorder

logger = logging.getLogger('recorder')

def setup_log(debug, logfile):
    formatter = logging.Formatter(
            fmt='%(asctime)s [%(levelname)-8s] %(name)s(%(funcName)s): %(message)s',
            datefmt='%y-%m-%d | %H:%M:%S')

    stream_handler = logging.StreamHandler()
    file_handler = logging.FileHandler(logfile, mode='a')

    stream_handler.setFormatter(formatter)
    file_handler.setFormatter(formatter)

    root = logging.root
    root.addHandler(stream_handler)
    root.addHandler(file_handler)

    root.setLevel(logging.DEBUG if debug else logging.INFO)

@click.command(context_settings={'help_option_names':['-h','--help']})
@click.version_option(version=recorder.VERSION, prog_name='ece-recorder')
@click.option('-d', '--debug/--no-debug')
@click.option('-l', '--log', default='record.log')
@click.option('--vcodec', default='libx264', show_default=True)
@click.option('--acodec', default='pcm_s16le', show_default=True)
@click.option('--threads', type=int, default=0, show_default=True)
@click.argument('output')
def cli(debug, log, vcodec, acodec, threads, output):
    """eclipsecon europe recording tool"""

    try:
        setup_log(debug, log)

        recorder.record(acodec, vcodec, threads, output)
    except Exception as e:
        logger.critical(click.style(str(e), fg='red', bold=True))
        sys.exit(1)

if __name__ == '__main__':
    cli()

# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 fenc=utf-8
