#!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)

    print("Running make_stats_plots script ...")

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

    stats_plots.make_plots(**vargs)
