diff options
-rw-r--r-- | pym/portage/output.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/pym/portage/output.py b/pym/portage/output.py index deb8c548b..ff960d843 100644 --- a/pym/portage/output.py +++ b/pym/portage/output.py @@ -196,7 +196,16 @@ def xtermTitleReset(): default_xterm_title = "" elif prompt_command is not None: if dotitles and "TERM" in os.environ and sys.stderr.isatty(): - os.system(prompt_command) + from portage.process import find_binary, spawn + shell = os.environ.get("SHELL") + if not shell or not os.access(shell, os.EX_OK): + shell = find_binary("sh") + if shell: + spawn([shell, "-c", prompt_command], env=os.environ, + fdpipes={0:sys.stdin.fileno(),1:sys.stderr.fileno(), + 2:sys.stderr.fileno()}) + else: + os.system(prompt_command) return else: pwd = os.getenv('PWD','') |