diff --git a/papers/commands/__init__.py b/papers/commands/__init__.py index b36a71e..e772f98 100644 --- a/papers/commands/__init__.py +++ b/papers/commands/__init__.py @@ -6,4 +6,5 @@ import init_cmd import list_cmd import open_cmd import edit_cmd +import remove_cmd import websearch_cmd diff --git a/papers/commands/remove_cmd.py b/papers/commands/remove_cmd.py new file mode 100644 index 0000000..7aa75d3 --- /dev/null +++ b/papers/commands/remove_cmd.py @@ -0,0 +1,20 @@ +from .. import repo + + +def parser(subparsers, config): + parser = subparsers.add_parser('remove', help='removes a paper') + parser.add_argument('reference', + help='reference to the paper (citekey or number)') + return parser + + +def command(config, ui, reference): + rp = repo.Repository.from_directory() + key = rp.citekey_from_ref(reference, fatal=True) + paper = rp.paper_from_citekey(key) + are_you_sure = ("Are you sure you want to delete paper [%s]" + " (this will also delete associated documents)?" + % ui.colored(paper.citekey, color='citekey')) + sure = ui.input_yn(question=are_you_sure, default='n') + if sure: + rp.remove(paper.citekey) diff --git a/papers/papers b/papers/papers index 3eb1da5..a6c7164 100755 --- a/papers/papers +++ b/papers/papers @@ -17,6 +17,7 @@ cmds = collections.OrderedDict([ ('export', commands.export_cmd), ('list', commands.list_cmd), ('edit', commands.edit_cmd), + ('remove', commands.remove_cmd), ('open', commands.open_cmd), ('websearch', commands.websearch_cmd) ])