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