from .. import repo
from .. import color
from ..configs import config
from ..uis import get_ui
from .helpers import add_references_argument, parse_references


def parser(subparsers):
    parser = subparsers.add_parser('remove', help='removes a paper')
    parser.add_argument('-f', '--force', action='store_true', default=None,
    help="does not prompt for confirmation.")
    add_references_argument(parser)
    return parser


def command(args):

    ui = get_ui()
    force = args.force
    references = args.references

    rp = repo.Repository(config())
    citekeys = parse_references(rp, references)
    if force is None:
        are_you_sure = ("Are you sure you want to delete paper(s) [%s]"
            " (this will also delete associated documents)?"
            % ', '.join([color.dye(c, color.citekey) for c in citekeys]))
        sure = ui.input_yn(question=are_you_sure, default='n')
    if force or sure:
        for c in citekeys:
            rp.remove_paper(c)