pubs/papers/commands/open_cmd.py
Jonathan Grizou 31cf4de9d3 Change call for command from "cmds[cmd].command(**vars(args))" to "cmds[cmd].command(args)".
Applied  the corresponding changes to command files.
AMakes it possible to declare and use additional parser inside subparsers.
May be useful for tag command. Will be implemented in texnote plugin.
2013-07-03 23:01:47 +02:00

41 lines
1.2 KiB
Python

import subprocess
from .. import repo
from ..paper import NoDocumentFile
from ..configs import config
from .. import color
from .helpers import add_references_argument, parse_reference
def parser(subparsers):
parser = subparsers.add_parser('open',
help='open the paper in a pdf viewer')
parser.add_argument('-w', '--with', dest='with_command', default=None,
help='command to use to open the document file')
add_references_argument(parser, single=True)
return parser
def command(args):
ui = args.ui
with_command = args.with_command
reference = args.reference
rp = repo.Repository(config())
key = parse_reference(ui, rp, reference)
paper = rp.get_paper(key)
if with_command is None:
with_command = config().open_cmd
try:
filepath = paper.get_document_path()
subprocess.Popen([with_command, filepath])
ui.print_('{} opened.'.format(color.dye(filepath, color.filepath)))
except NoDocumentFile:
ui.error('No document associated with the entry {}.'.format(
color.dye(key, color.citekey)))
ui.exit()
except OSError:
ui.error("Command does not exist: %s." % with_command)
ui.exit(127)