#! /usr/bin/env python
#
# Drop a count or range of stashes.
#

import argparse

from commands import abandon
from commands.utils import directories


def main():

    parser = argparse.ArgumentParser(
        prog='git abandon',
        version='git-abandon 0.7.0',
        description=abandon.__doc__,
        epilog='for more detail, use: git help abandon'
    )

    # <start>
    parser.add_argument(
        'start',
        help='the range start (inclusive) (default: 0)',
        nargs='?',
        default='0',
        metavar='START',
        type=int
    )

    # <end>
    parser.add_argument(
        'end',
        help='the range end (exclusive)',
        metavar='END',
        type=int
    )

    dry_quiet_group = parser.add_mutually_exclusive_group()

    # -d|--dry-run
    dry_quiet_group.add_argument(
        '-d',
        '--dry-run',
        help="print the stashes that would be dropped but don't drop them",
        action='store_true'
    )

    # -q|--quiet
    dry_quiet_group.add_argument(
        '-q',
        '--quiet',
        help='suppress all non-error output',
        action='store_true',
        default=False
    )

    args = parser.parse_args()
    directories.exit_if_not_git_repository()
    abandon.abandon(**vars(args))


if __name__ == '__main__':
    main()
