#!/usr/bin/env python

import argparse
import logging
import sys
import colibri2trilegal

from argparse import RawTextHelpFormatter

logger = logging.getLogger(__name__)

def main(argv):
    """
    main caller to colibri2trilegal
    """
    description = "Parse COLIBRI tracks to use in TRILEGAL \n input file format: \n"
    description += colibri2trilegal.agb_input_defaults.__doc__

    parser = argparse.ArgumentParser(description=description,
                                     formatter_class=RawTextHelpFormatter)

    parser.add_argument('-p', '--prepare', action='store_true', help='print template input file')
    parser.add_argument('infile', type=str, help='input file name or template file name if using -p')

    args = parser.parse_args(argv)

    logfile = 'colibri2trilegal.log'
    handler = logging.FileHandler(logfile)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)

    if args.prepare:
        with open(args.infile, 'w') as inp:
            inp.write(colibri2trilegal.agb_input_defaults.__doc__)
        logger.info('wrote {}'.format(args.infile))
    else:
        colibri2trilegal.colibri2trilegal(args.infile)


if __name__ == "__main__":
    main(sys.argv[1:])