#!python

from pathlib import Path
import argparse

from github_stats_pages import stats_plots


if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        description='CLI to generate stats plots and static pages')
    parser.add_argument('-u', '--username', required=True,
                        help='user or organization name')
    parser.add_argument('-c', '--csv-file', required=True,
                        help='CSV filename')
    parser.add_argument('-t', '--token', default='',
                        help='GitHub API token')  # Avoids rate limiting
    parser.add_argument('-d', '--data-dir', default=Path.cwd(),
                        help='''Folder path containing merge CSV files
                             'Default: current working directory''')
    parser.add_argument('-o', '--out-dir', default=Path.cwd(),
                        help='''Absolute path to save static pages.
                             'Default: current working directory''')
    parser.add_argument('-i', '--include-repos', default='',
                        help='''Repositories to only render.
                             Overrides --csv-filename input.
                             Comma separated if more than one''')
    parser.add_argument('-e', '--exclude-repos', default='',
                        help='''Repositories to exclude.
                             Comma separated if more than one''')
    parser.add_argument('-s', '--symlink', action='store_true',
                        help='Symlink to styles assets')

    args = parser.parse_args()
    vargs = vars(args)

    if args.include_repos and args.exclude_repos:
        raise ValueError(
            "Cannot provide include_repos and exclude_repos simultaneously!"
        )

    stats_plots.make_plots(**vargs)
