#!/usr/bin/env python3
"""
Checks a directory of markdown files for lint
"""

import argparse
import configparser
import logging
import os
import sys

import testmd


def main():
    """ main """
    parser = argparse.ArgumentParser()
    parser.add_argument("name", help="name of the directory or file")
    parser.add_argument("-c", "--config", help="path to the config file", default="")
    parser.add_argument("-d", "--debug", help="enable debug mode", action="store_true")
    argv = parser.parse_args()

    if argv.debug:
        logging.basicConfig(level=logging.DEBUG)
    else:
        logging.basicConfig(level=logging.INFO)

    exit_status = 0

    # Create a new configparser object
    config = configparser.ConfigParser()
    config.read(argv.config)

    md_files = []

    if os.path.isdir(argv.name):
        all_files = os.walk(argv.name)
        for root, _dirs, files in all_files:
            for name in files:
                if name.endswith(".md"):
                    md_file_path = os.path.join(root, name)
                    md_files.append(md_file_path)
    else:
        md_files.append(argv.name)

    for md_file in md_files:
        article = testmd.TestMd(md_file, config)
        article.run_tests()
        exit_status = article.exit_status

    sys.exit(exit_status)


if __name__ == "__main__":
    main()
