summaryrefslogtreecommitdiff
path: root/meta/lib/oe/terminal.py
diff options
context:
space:
mode:
authorJason Wessel <jason.wessel@windriver.com>2012-09-17 17:43:50 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-09-24 15:31:27 +0100
commit5ccff8d44626bfd3d1af2a7f81f0567997277809 (patch)
tree7f777dc4b44faf80dd138f4b5d15cb76999cd567 /meta/lib/oe/terminal.py
parent7db73c70351939c4be9867981a8cf97148bbe57e (diff)
downloadopenembedded-core-5ccff8d44626bfd3d1af2a7f81f0567997277809.tar.gz
openembedded-core-5ccff8d44626bfd3d1af2a7f81f0567997277809.tar.bz2
openembedded-core-5ccff8d44626bfd3d1af2a7f81f0567997277809.zip
terminal: pass data store all the way through to terminal class
Passing the data store will be needed for firing a custom event for the screen class. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oe/terminal.py')
-rw-r--r--meta/lib/oe/terminal.py22
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):
class Terminal(Popen):
__metaclass__ = Registry
- def __init__(self, sh_cmd, title=None, env=None):
+ def __init__(self, sh_cmd, title=None, env=None, d=None):
fmt_sh_cmd = self.format_command(sh_cmd, title)
try:
Popen.__init__(self, fmt_sh_cmd, env=env)
@@ -46,7 +46,7 @@ class Terminal(Popen):
return [element.format(**fmt) for element in self.command]
class XTerminal(Terminal):
- def __init__(self, sh_cmd, title=None, env=None):
+ def __init__(self, sh_cmd, title=None, env=None, d=None):
Terminal.__init__(self, sh_cmd, title, env)
if not os.environ.get('DISPLAY'):
raise UnsupportedTerminal(self.name)
@@ -59,7 +59,7 @@ class Xfce(XTerminal):
command = 'Terminal -T "{title}" -e "{command}"'
priority = 2
- def __init__(self, command, title=None, env=None):
+ def __init__(self, command, title=None, env=None, d=None):
# Upstream binary name is Terminal but Debian/Ubuntu use
# xfce4-terminal to avoid possible(?) conflicts
distro = distro_name()
@@ -67,20 +67,20 @@ class Xfce(XTerminal):
cmd = 'xfce4-terminal -T "{title}" -e "{command}"'
else:
cmd = command
- XTerminal.__init__(self, cmd, title, env)
+ XTerminal.__init__(self, cmd, title, env, d)
class Konsole(XTerminal):
command = 'konsole -T "{title}" -e {command}'
priority = 2
- def __init__(self, sh_cmd, title=None, env=None):
+ def __init__(self, sh_cmd, title=None, env=None, d=None):
# Check version
vernum = check_konsole_version("konsole")
if vernum:
if vernum.split('.')[0] == "2":
logger.debug(1, 'Konsole from KDE 4.x will not work as devshell, skipping')
raise UnsupportedTerminal(self.name)
- XTerminal.__init__(self, sh_cmd, title, env)
+ XTerminal.__init__(self, sh_cmd, title, env, d)
class XTerm(XTerminal):
command = 'xterm -T "{title}" -e {command}'
@@ -93,7 +93,7 @@ class Rxvt(XTerminal):
class Screen(Terminal):
command = 'screen -D -m -t "{title}" -S devshell {command}'
- def __init__(self, sh_cmd, title=None, env=None):
+ def __init__(self, sh_cmd, title=None, env=None, d=None):
s_id = "devshell_%i" % os.getpid()
self.command = "screen -D -m -t \"{title}\" -S %s {command}" % s_id
Terminal.__init__(self, sh_cmd, title, env)
@@ -104,18 +104,18 @@ class Screen(Terminal):
def prioritized():
return Registry.prioritized()
-def spawn_preferred(sh_cmd, title=None, env=None):
+def spawn_preferred(sh_cmd, title=None, env=None, d=None):
"""Spawn the first supported terminal, by priority"""
for terminal in prioritized():
try:
- spawn(terminal.name, sh_cmd, title, env)
+ spawn(terminal.name, sh_cmd, title, env, d)
break
except UnsupportedTerminal:
continue
else:
raise NoSupportedTerminals()
-def spawn(name, sh_cmd, title=None, env=None):
+def spawn(name, sh_cmd, title=None, env=None, d=None):
"""Spawn the specified terminal, by name"""
logger.debug(1, 'Attempting to spawn terminal "%s"', name)
try:
@@ -123,7 +123,7 @@ def spawn(name, sh_cmd, title=None, env=None):
except KeyError:
raise UnsupportedTerminal(name)
- pipe = terminal(sh_cmd, title, env)
+ pipe = terminal(sh_cmd, title, env, d)
output = pipe.communicate()[0]
if pipe.returncode != 0:
raise ExecutionError(sh_cmd, pipe.returncode, output)