You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3 KiB

from .. import repo
from ..configs import config
from ..uis import get_ui
def parser(subparsers):
parser = subparsers.add_parser('attach',
help='attach a document to an existing paper')
parser.add_argument('-c', '--copy', action='store_true', default=None,
help="copy document files into library directory (default)")
parser.add_argument('-C', '--nocopy', action='store_false', dest='copy',
help="don't copy document files (opposite of -c)")
parser.add_argument('citekey',
help='citekey of the paper')
parser.add_argument('document',
help='document file')
return parser
def command(args):
"""
:param bibfile: bibtex file (in .bib, .bibml or .yaml format.
:param docfile: path (no url yet) to a pdf or ps file
"""
ui = get_ui()
rp = repo.Repository(config())
paper = rp.pull_paper(args.citekey)
copy = args.copy
if copy is None:
copy = config().import_copy
try:
document = args.document
if copy:
document = rp.databroker.copy_doc(paper.citekey, document)
else:
pass # TODO warn if file does not exists
paper.docpath = document
except ValueError, v:
ui.error(v.message)
ui.exit(1)
except IOError, v:
ui.error(v.message)
ui.exit(1)