From f8ed7446755eeb88191e16749350efa1e7e6197c Mon Sep 17 00:00:00 2001 From: Peter Seebach Date: Tue, 11 Jun 2013 09:28:03 -0500 Subject: handle two-word commands with tmux Trying to make a devshell using tmux can fail because "tmux new" expects a single command, not a series of arguments. It does, however, split strings in a suitable way. So you can quote the command. The failure mode is particularly arcane, in that you end up with a message like: ERROR: Unable to spawn terminal auto: \ Execution of 'pseudo /bin/bash' failed with exit code 1: usage: new-session [-d] [-n window-name] [-s session-name] \ [-t target-session] [command] which is confusing because there's no "new-session" anywhere in sight (that's actually "tmux new"), and because what failed to execute wasn't either pseudo or bash. Signed-off-by: Richard Purdie --- meta/lib/oe/terminal.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'meta/lib/oe/terminal.py') diff --git a/meta/lib/oe/terminal.py b/meta/lib/oe/terminal.py index 28470e3e1e..25f8004fab 100644 --- a/meta/lib/oe/terminal.py +++ b/meta/lib/oe/terminal.py @@ -122,7 +122,7 @@ class TmuxRunning(Terminal): class Tmux(Terminal): """Start a new tmux session and window""" - command = 'tmux new -d -s devshell -n devshell {command}' + command = 'tmux new -d -s devshell -n devshell "{command}"' priority = 0.75 def __init__(self, sh_cmd, title=None, env=None, d=None): @@ -133,7 +133,7 @@ class Tmux(Terminal): # devshells, if it's already there, add a new window to it. window_name = 'devshell-%i' % os.getpid() - self.command = 'tmux new -d -s {0} -n {0} {{command}}'.format(window_name) + self.command = 'tmux new -d -s {0} -n {0} "{{command}}"'.format(window_name) Terminal.__init__(self, sh_cmd, title, env, d) attach_cmd = 'tmux att -t {0}'.format(window_name) -- cgit 1.2.3-korg