summaryrefslogtreecommitdiffstats
path: root/pym/output.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/output.py')
-rw-r--r--pym/output.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/pym/output.py b/pym/output.py
index ca265124a..6886e5cbb 100644
--- a/pym/output.py
+++ b/pym/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_exec 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','')