diff --git a/src/python/jw/pkg/lib/util.py b/src/python/jw/pkg/lib/util.py index 9378c8a2..5cc92e4b 100644 --- a/src/python/jw/pkg/lib/util.py +++ b/src/python/jw/pkg/lib/util.py @@ -104,6 +104,15 @@ async def run_cmd( ) def _spawn(): + # Apply env in PTY mode by temporarily updating os.environ around spawn. + if env: + old_env = os.environ.copy() + try: + os.environ.update(env) + return pty.spawn(args, master_read=reader) + finally: + os.environ.clear() + os.environ.update(old_env) return pty.spawn(args, master_read=reader) __check_exit_code(await asyncio.to_thread(_spawn))