From c61c6f74c7af10d047db6cc7d823a2e396fa9c2c Mon Sep 17 00:00:00 2001 From: Oleksii Shevchuk Date: Sun, 10 Mar 2019 23:39:13 +0200 Subject: [PATCH] safepopen: add support for optional stdin oneshot buffer --- pupy/packages/all/pupyutils/safepopen.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pupy/packages/all/pupyutils/safepopen.py b/pupy/packages/all/pupyutils/safepopen.py index 9887c8e4..9a8bc7a0 100644 --- a/pupy/packages/all/pupyutils/safepopen.py +++ b/pupy/packages/all/pupyutils/safepopen.py @@ -88,6 +88,7 @@ class SafePopen(object): def __init__(self, *popen_args, **popen_kwargs): self._popen_args = popen_args self._interactive = popen_kwargs.pop('interactive', False) + self._stdin_data = popen_kwargs.pop('stdin_data', None) self._suid = popen_kwargs.pop('suid', None) if not ON_POSIX: @@ -139,6 +140,10 @@ class SafePopen(object): **kwargs ) + if self._stdin_data: + self._pipe.stdin.write(self._stdin_data) + self._pipe.stdin.flush() + if not self._interactive: self._pipe.stdin.close()