in check-grammar-crate.py [0:0]
def main() -> None:
parser = argparse.ArgumentParser(
prog="check-grammar-crate",
description="This tool computes the metrics of a chosen repository "
"before and after a tree-sitter grammar update.",
epilog="The source code of this program can be found on "
"GitHub at https://github.com/mozilla/rust-code-analysis",
)
# Subcommands parsers
commands = parser.add_subparsers(help="Sub-command help")
# Compute metrics command
compute_metrics_cmd = commands.add_parser(
"compute-metrics",
help="Computes the metrics of a chosen repository before and after "
"a tree-sitter grammar update.",
)
# Optional arguments
compute_metrics_cmd.add_argument(
"--only-new",
"-n",
action="store_true",
help="Only compute the metrics after a tree-sitter grammar update",
)
# Arguments
compute_metrics_cmd.add_argument(
"-u",
"--url",
type=str,
required=True,
help="URL of the repository used to compute the metrics",
)
compute_metrics_cmd.add_argument(
"-p",
"--path",
type=str,
required=True,
help="Path where the repository will be saved locally",
)
compute_metrics_cmd.add_argument(
"-g",
"--grammar",
type=str,
required=True,
help="tree-sitter grammar to be updated",
)
compute_metrics_cmd.set_defaults(func=compute_metrics)
# Compute continuous integration metrics command
compute_ci_metrics_cmd = commands.add_parser(
"compute-ci-metrics",
help="Computes the metrics of a chosen repository before and after "
"a tree-sitter grammar update on a continuous integration system.",
)
# Arguments
compute_ci_metrics_cmd.add_argument(
"-p",
"--path",
type=str,
required=True,
help="Path where the rust-code-analysis repository is saved on the "
"continuous integration system",
)
compute_ci_metrics_cmd.add_argument(
"-g",
"--grammar",
type=str,
required=True,
help="tree-sitter grammar to be updated",
)
compute_ci_metrics_cmd.set_defaults(func=compute_ci_metrics)
# Compare metrics command
compare_metrics_cmd = commands.add_parser(
"compare-metrics",
help="Compares the metrics before and after "
"a tree-sitter grammar update in order to discover whether "
"there are differences.",
)
# Arguments
compare_metrics_cmd.add_argument(
"-g",
"--grammar",
type=str,
required=True,
help="tree-sitter grammar used to compare the metrics",
)
compare_metrics_cmd.set_defaults(func=compare_metrics)
# Parse arguments
args = parser.parse_args()
# Call the command
args.func(args)