#!/usr/bin/env python3

"""
A command-line tool foro calling merge_git_ref
"""

from utils import check_minimum_python_version
check_minimum_python_version(3, 4)

import argparse, sys, pathlib

from git_utils import merge_git_ref

###############################################################################
def parse_command_line(args, description):
###############################################################################
    parser = argparse.ArgumentParser(
        usage="""\n{0} <ref> [--verbose]
OR
{0} --help

\033[1mEXAMPLES:\033[0m
    \033[1;32m# Merge origin/master into current HEAD \033[0m
    > {0} origin/master
""".format(pathlib.Path(args[0]).name),
        description=description,
        formatter_class=argparse.ArgumentDefaultsHelpFormatter
    )

    parser.add_argument("git_ref", help="The git ref to merge")

    parser.add_argument("-r", "--repo", help="Path to repo. Default is whatever repo contains pwd")

    parser.add_argument("-v", "--verbose", action="store_true", help="Turn on verbose output")

    parser.add_argument("-d", "--dry-run", action="store_true", help="Do a dry run")

    return parser.parse_args(args[1:])

###############################################################################
def _main_func(description):
###############################################################################
    merge_git_ref(**vars(parse_command_line(sys.argv, description)))

###############################################################################

if (__name__ == "__main__"):
    _main_func(__doc__)
