pubs/papers/commands/open_cmd.py
2012-12-18 16:48:40 +01:00

27 lines
988 B
Python

import subprocess
from .. import color
from .. import repo
from ..paper import NoDocumentFile
def parser(subparsers, config):
parser = subparsers.add_parser('open', help='{}open the paper in a pdf viewer{}'.format(color.normal, color.end))
parser.add_argument('citekey', help='{}the paper associated citekey{}'.format(color.normal, color.end))
return parser
def command(config, citekey):
rp = repo.Repository.from_directory()
paper = rp.paper_from_any(citekey, fatal=True)
try:
if paper.check_file():
filepath = paper.get_file_path()
subprocess.Popen(['open', filepath])
print('{}{}{} opened.{}'.format(
color.filepath, filepath, color.normal, color.end))
else:
raise NoDocumentFile
except NoDocumentFile:
print('{}error{}: No document associated to this entry {}{}{}'.format(
color.error, color.normal, color.citekey, citekey, color.end))
exit(-1)