summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/terminal.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oe/terminal.py')
-rw-r--r--meta/lib/oe/terminal.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py
index 17d09045e4..54e3ffc1e8 100644
--- a/meta/lib/oe/terminal.py
+++ b/meta/lib/oe/terminal.py
@@ -116,6 +116,24 @@ class TmuxRunning(Terminal):
116 if not os.getenv('TMUX'): 116 if not os.getenv('TMUX'):
117 raise UnsupportedTerminal('tmux is not running') 117 raise UnsupportedTerminal('tmux is not running')
118 118
119 if not check_tmux_pane_size('tmux'):
120 raise UnsupportedTerminal('tmux pane too small')
121
122 Terminal.__init__(self, sh_cmd, title, env, d)
123
124class TmuxNewWindow(Terminal):
125 """Open a new window in the current running tmux session"""
126 name = 'tmux-new-window'
127 command = 'tmux new-window -n "{title}" "{command}"'
128 priority = 2.70
129
130 def __init__(self, sh_cmd, title=None, env=None, d=None):
131 if not bb.utils.which(os.getenv('PATH'), 'tmux'):
132 raise UnsupportedTerminal('tmux is not installed')
133
134 if not os.getenv('TMUX'):
135 raise UnsupportedTerminal('tmux is not running')
136
119 Terminal.__init__(self, sh_cmd, title, env, d) 137 Terminal.__init__(self, sh_cmd, title, env, d)
120 138
121class Tmux(Terminal): 139class Tmux(Terminal):
@@ -184,6 +202,23 @@ def spawn(name, sh_cmd, title=None, env=None, d=None):
184 if pipe.returncode != 0: 202 if pipe.returncode != 0:
185 raise ExecutionError(sh_cmd, pipe.returncode, output) 203 raise ExecutionError(sh_cmd, pipe.returncode, output)
186 204
205def check_tmux_pane_size(tmux):
206 import subprocess as sub
207 try:
208 p = sub.Popen('%s list-panes -F "#{?pane_active,#{pane_height},}"' % tmux,
209 shell=True,stdout=sub.PIPE,stderr=sub.PIPE)
210 out, err = p.communicate()
211 size = int(out.strip())
212 except OSError as exc:
213 import errno
214 if exc.errno == errno.ENOENT:
215 return None
216 else:
217 raise
218 if size/2 >= 19:
219 return True
220 return False
221
187def check_konsole_version(konsole): 222def check_konsole_version(konsole):
188 import subprocess as sub 223 import subprocess as sub
189 try: 224 try: