File: HelpViewer.py

package info (click to toggle)
update-manager 0.68.debian-7
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 6,796 kB
  • ctags: 814
  • sloc: python: 5,646; xml: 1,571; sh: 433; makefile: 356; ansic: 264
file content (33 lines) | stat: -rw-r--r-- 984 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# helpviewer.py

import os
import subprocess

# Hardcoded list of available help viewers
# FIXME: khelpcenter support would be nice
#KNOWN_VIEWERS = ["/usr/bin/yelp", "/usr/bin/khelpcenter"]
KNOWN_VIEWERS = ["/usr/bin/yelp"]

class HelpViewer:
    def __init__(self, docu):
        self.command = []
        self.docu = docu
        for viewer in KNOWN_VIEWERS:
            if os.path.exists(viewer):
                self.command = [viewer, "ghelp:%s" % docu]
                break
        
    def check(self):
        """check if a viewer is available"""
        if self.command == []:
            return False
        else:
            return True

    def run(self):
        """open the documentation in the viewer"""
        # avoid running the help viewer as root
        if os.getuid() == 0 and os.environ.has_key('SUDO_USER'):
            self.command = ['sudo', '-u', os.environ['SUDO_USER']] +\
                           self.command
        subprocess.Popen(self.command)