]> code.ossystems Code Review - openembedded-core.git/commitdiff
terminal: Fix working directory in tmux terminals
authorJacob Kroon <jacob.kroon@gmail.com>
Sun, 3 Feb 2019 00:31:27 +0000 (01:31 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 4 Feb 2019 15:09:03 +0000 (15:09 +0000)
Recent version of tmux seems to use PWD from the environment instead of the
actual working directory. Help it use the correct path.

Fixes setting the correct working directory when running
devshell and menuconfig tasks.

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oe/terminal.py

index afbda595db952e2e4c6ae1fd42d83d85a9ae9821..e4045559fc4db85587c9b6531cf9efa09a8e38b7 100644 (file)
@@ -39,7 +39,7 @@ class Terminal(Popen, metaclass=Registry):
                 raise
 
     def format_command(self, sh_cmd, title):
-        fmt = {'title': title or 'Terminal', 'command': sh_cmd}
+        fmt = {'title': title or 'Terminal', 'command': sh_cmd, 'cwd': os.getcwd() }
         if isinstance(self.command, str):
             return shlex.split(self.command.format(**fmt))
         else:
@@ -117,7 +117,7 @@ class Screen(Terminal):
 class TmuxRunning(Terminal):
     """Open a new pane in the current running tmux window"""
     name = 'tmux-running'
-    command = 'tmux split-window "{command}"'
+    command = 'tmux split-window -c "{cwd}" "{command}"'
     priority = 2.75
 
     def __init__(self, sh_cmd, title=None, env=None, d=None):
@@ -135,7 +135,7 @@ class TmuxRunning(Terminal):
 class TmuxNewWindow(Terminal):
     """Open a new window in the current running tmux session"""
     name = 'tmux-new-window'
-    command = 'tmux new-window -n "{title}" "{command}"'
+    command = 'tmux new-window -c "{cwd}" -n "{title}" "{command}"'
     priority = 2.70
 
     def __init__(self, sh_cmd, title=None, env=None, d=None):
@@ -149,7 +149,7 @@ class TmuxNewWindow(Terminal):
 
 class Tmux(Terminal):
     """Start a new tmux session and window"""
-    command = 'tmux new -d -s devshell -n devshell "{command}"'
+    command = 'tmux new -c "{cwd}" -d -s devshell -n devshell "{command}"'
     priority = 0.75
 
     def __init__(self, sh_cmd, title=None, env=None, d=None):
@@ -160,7 +160,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 -c "{{cwd}}" -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)