#!/usr/bin/python3
import argparse, sys, os

from konfiture import check_grammar


__version__ = '0.2.0'
__program__ = 'konfiture'


def main(args):
    show_version(args)
    show_languages(args)
    check(args)


def show_version(args):
    if args.version:
        print('{0} {1}\nPython {2}'.format(__program__, __version__, sys.version))
        raise SystemExit(0)


def show_languages(args):
    if args.list:
        print('en: English')
        print('fr: Français')
        raise SystemExit(0)


def check(args):
    if len(args.markdown) == 0:
        print('Nothing to do.')

    for markdown in args.markdown:
        if not os.path.isfile(markdown):
            print('\'{}\' is not a file.'.format(markdown))

        else:
            with open(markdown, 'r', encoding='utf-8') as stream:
                content = stream.read()
                result = check_grammar(content, args.language)
                print(markdown)
                print(result)


if __name__ == '__main__':

    try:
        parser = argparse.ArgumentParser(prog='grammalecte', add_help=False)
        parser.add_argument('markdown', help='File to correct', nargs='*')
        parser.add_argument('-v', '--version', help='Show program\'s version number and exit.', action='store_true')
        parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS, help='Show this help message and exit.')
        parser.add_argument('-l', '--language', help='Language selected', default='fr')
        parser.add_argument('--list', help='List language available.', action='store_true')
        args = parser.parse_args()
        main(args)

    except (KeyboardInterrupt, SystemExit):
        pass