diff options
Diffstat (limited to 'meta/lib/oe/terminal.py')
| -rw-r--r-- | meta/lib/oe/terminal.py | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py index 30e8f92004..352a28239a 100644 --- a/meta/lib/oe/terminal.py +++ b/meta/lib/oe/terminal.py | |||
| @@ -27,7 +27,7 @@ class Registry(oe.classutils.ClassRegistry): | |||
| 27 | class Terminal(Popen): | 27 | class Terminal(Popen): |
| 28 | __metaclass__ = Registry | 28 | __metaclass__ = Registry |
| 29 | 29 | ||
| 30 | def __init__(self, sh_cmd, title=None, env=None): | 30 | def __init__(self, sh_cmd, title=None, env=None, d=None): |
| 31 | fmt_sh_cmd = self.format_command(sh_cmd, title) | 31 | fmt_sh_cmd = self.format_command(sh_cmd, title) |
| 32 | try: | 32 | try: |
| 33 | Popen.__init__(self, fmt_sh_cmd, env=env) | 33 | Popen.__init__(self, fmt_sh_cmd, env=env) |
| @@ -46,7 +46,7 @@ class Terminal(Popen): | |||
| 46 | return [element.format(**fmt) for element in self.command] | 46 | return [element.format(**fmt) for element in self.command] |
| 47 | 47 | ||
| 48 | class XTerminal(Terminal): | 48 | class XTerminal(Terminal): |
| 49 | def __init__(self, sh_cmd, title=None, env=None): | 49 | def __init__(self, sh_cmd, title=None, env=None, d=None): |
| 50 | Terminal.__init__(self, sh_cmd, title, env) | 50 | Terminal.__init__(self, sh_cmd, title, env) |
| 51 | if not os.environ.get('DISPLAY'): | 51 | if not os.environ.get('DISPLAY'): |
| 52 | raise UnsupportedTerminal(self.name) | 52 | raise UnsupportedTerminal(self.name) |
| @@ -59,7 +59,7 @@ class Xfce(XTerminal): | |||
| 59 | command = 'Terminal -T "{title}" -e "{command}"' | 59 | command = 'Terminal -T "{title}" -e "{command}"' |
| 60 | priority = 2 | 60 | priority = 2 |
| 61 | 61 | ||
| 62 | def __init__(self, command, title=None, env=None): | 62 | def __init__(self, command, title=None, env=None, d=None): |
| 63 | # Upstream binary name is Terminal but Debian/Ubuntu use | 63 | # Upstream binary name is Terminal but Debian/Ubuntu use |
| 64 | # xfce4-terminal to avoid possible(?) conflicts | 64 | # xfce4-terminal to avoid possible(?) conflicts |
| 65 | distro = distro_name() | 65 | distro = distro_name() |
| @@ -67,20 +67,20 @@ class Xfce(XTerminal): | |||
| 67 | cmd = 'xfce4-terminal -T "{title}" -e "{command}"' | 67 | cmd = 'xfce4-terminal -T "{title}" -e "{command}"' |
| 68 | else: | 68 | else: |
| 69 | cmd = command | 69 | cmd = command |
| 70 | XTerminal.__init__(self, cmd, title, env) | 70 | XTerminal.__init__(self, cmd, title, env, d) |
| 71 | 71 | ||
| 72 | class Konsole(XTerminal): | 72 | class Konsole(XTerminal): |
| 73 | command = 'konsole -T "{title}" -e {command}' | 73 | command = 'konsole -T "{title}" -e {command}' |
| 74 | priority = 2 | 74 | priority = 2 |
| 75 | 75 | ||
| 76 | def __init__(self, sh_cmd, title=None, env=None): | 76 | def __init__(self, sh_cmd, title=None, env=None, d=None): |
| 77 | # Check version | 77 | # Check version |
| 78 | vernum = check_konsole_version("konsole") | 78 | vernum = check_konsole_version("konsole") |
| 79 | if vernum: | 79 | if vernum: |
| 80 | if vernum.split('.')[0] == "2": | 80 | if vernum.split('.')[0] == "2": |
| 81 | logger.debug(1, 'Konsole from KDE 4.x will not work as devshell, skipping') | 81 | logger.debug(1, 'Konsole from KDE 4.x will not work as devshell, skipping') |
| 82 | raise UnsupportedTerminal(self.name) | 82 | raise UnsupportedTerminal(self.name) |
| 83 | XTerminal.__init__(self, sh_cmd, title, env) | 83 | XTerminal.__init__(self, sh_cmd, title, env, d) |
| 84 | 84 | ||
| 85 | class XTerm(XTerminal): | 85 | class XTerm(XTerminal): |
| 86 | command = 'xterm -T "{title}" -e {command}' | 86 | command = 'xterm -T "{title}" -e {command}' |
| @@ -93,7 +93,7 @@ class Rxvt(XTerminal): | |||
| 93 | class Screen(Terminal): | 93 | class Screen(Terminal): |
| 94 | command = 'screen -D -m -t "{title}" -S devshell {command}' | 94 | command = 'screen -D -m -t "{title}" -S devshell {command}' |
| 95 | 95 | ||
| 96 | def __init__(self, sh_cmd, title=None, env=None): | 96 | def __init__(self, sh_cmd, title=None, env=None, d=None): |
| 97 | s_id = "devshell_%i" % os.getpid() | 97 | s_id = "devshell_%i" % os.getpid() |
| 98 | self.command = "screen -D -m -t \"{title}\" -S %s {command}" % s_id | 98 | self.command = "screen -D -m -t \"{title}\" -S %s {command}" % s_id |
| 99 | Terminal.__init__(self, sh_cmd, title, env) | 99 | Terminal.__init__(self, sh_cmd, title, env) |
| @@ -104,18 +104,18 @@ class Screen(Terminal): | |||
| 104 | def prioritized(): | 104 | def prioritized(): |
| 105 | return Registry.prioritized() | 105 | return Registry.prioritized() |
| 106 | 106 | ||
| 107 | def spawn_preferred(sh_cmd, title=None, env=None): | 107 | def spawn_preferred(sh_cmd, title=None, env=None, d=None): |
| 108 | """Spawn the first supported terminal, by priority""" | 108 | """Spawn the first supported terminal, by priority""" |
| 109 | for terminal in prioritized(): | 109 | for terminal in prioritized(): |
| 110 | try: | 110 | try: |
| 111 | spawn(terminal.name, sh_cmd, title, env) | 111 | spawn(terminal.name, sh_cmd, title, env, d) |
| 112 | break | 112 | break |
| 113 | except UnsupportedTerminal: | 113 | except UnsupportedTerminal: |
| 114 | continue | 114 | continue |
| 115 | else: | 115 | else: |
| 116 | raise NoSupportedTerminals() | 116 | raise NoSupportedTerminals() |
| 117 | 117 | ||
| 118 | def spawn(name, sh_cmd, title=None, env=None): | 118 | def spawn(name, sh_cmd, title=None, env=None, d=None): |
| 119 | """Spawn the specified terminal, by name""" | 119 | """Spawn the specified terminal, by name""" |
| 120 | logger.debug(1, 'Attempting to spawn terminal "%s"', name) | 120 | logger.debug(1, 'Attempting to spawn terminal "%s"', name) |
| 121 | try: | 121 | try: |
| @@ -123,7 +123,7 @@ def spawn(name, sh_cmd, title=None, env=None): | |||
| 123 | except KeyError: | 123 | except KeyError: |
| 124 | raise UnsupportedTerminal(name) | 124 | raise UnsupportedTerminal(name) |
| 125 | 125 | ||
| 126 | pipe = terminal(sh_cmd, title, env) | 126 | pipe = terminal(sh_cmd, title, env, d) |
| 127 | output = pipe.communicate()[0] | 127 | output = pipe.communicate()[0] |
| 128 | if pipe.returncode != 0: | 128 | if pipe.returncode != 0: |
| 129 | raise ExecutionError(sh_cmd, pipe.returncode, output) | 129 | raise ExecutionError(sh_cmd, pipe.returncode, output) |
