#!/usr/bin/env python

import argparse
from pathlib import Path

from academic_ads_bibtex import converter
from academic_ads_bibtex import __version__
from academic_ads_bibtex.logger import LogClass

from datetime import date

today = date.today()

if __name__ == '__main__':

    parser = argparse.ArgumentParser(
        description='Main command-line driver For Academic ADS BibTeX.')
    parser.add_argument('-f', '--filename', required=True,
                        help='Full path of BibTeX file (.bbl)')
    parser.add_argument('-d', '--db_filename',
                        help='Full path of input journal database (optional)')
    parser.add_argument('-o', '--out_filename',
                        help='Full path of output BibTeX file (optional)')
    args = parser.parse_args()
    vargs = vars(args)

    p = Path(vargs['filename'])
    vargs['filename'] = p

    log_filename = p.parent / \
                   f"academic_ads_bibtex.{today.strftime('%Y-%m-%d')}.log"
    log = LogClass(log_filename).get_logger()

    log.info("********************************")
    log.info("Starting academic_ads_bibtex ...")
    log.info(f"Version: {__version__}")
    log.info(f"Logs are stored in : {log_filename}")

    if vargs['db_filename'] is not None:
        vargs['db_filename'] = Path(vargs['db_filename'])

    if vargs['out_filename'] is None:
        outfile = p.parent / f"{p.stem}_revised{p.suffix}"
        vargs['out_filename'] = outfile
    else:
        vargs['out_filename'] = Path(vargs['out_filename'])

    # Import file
    c = converter.Convert(vargs['filename'],
                          vargs['db_filename'],
                          out_filename=vargs['out_filename'],
                          log=log)

    c.write_file()

    log.info("Finished academic_ads_bibtex!")
    log.info("*****************************")
