from .. import repo from .. import configs from .helpers import (add_references_argument, parse_reference, add_docfile_to_paper) def parser(subparsers, config): 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)") add_references_argument(parser, single=True) parser.add_argument('document', help='pdf or ps file') return parser def command(config, ui, copy, reference, document): """ :param bibfile: bibtex file (in .bib, .bibml or .yaml format. :param docfile: path (no url yet) to a pdf or ps file """ if copy is None: copy = config.get(configs.MAIN_SECTION, 'import-copy') rp = repo.Repository.from_directory(config) key = parse_reference(ui, rp, reference) paper = rp.get_paper(key) try: add_docfile_to_paper(rp, paper, docfile=document, copy=copy) except ValueError, v: ui.error(v.message) ui.exit(1) # TODO handle case where citekey exists