Skip to content

Commit 46d208d

Browse files
author
Dan
committed
Added stderr redirection to embedded server. Added accept environment variable implementation to embedded server
1 parent 6921fa2 commit 46d208d

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

embedded_server/embedded_server.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,18 +169,29 @@ def check_channel_exec_request(self, channel, cmd,
169169
self.event.set()
170170
_env = os.environ
171171
_env['PYTHONIOENCODING'] = encoding
172+
if hasattr(channel, 'environment'):
173+
_env.update(channel.environment)
172174
process = gevent.subprocess.Popen(cmd, stdout=gevent.subprocess.PIPE,
173175
stdin=gevent.subprocess.PIPE,
176+
stderr=gevent.subprocess.PIPE,
174177
shell=True, env=_env)
175178
gevent.spawn(self._read_response, channel, process)
176179
gevent.sleep(0)
177180
return True
178181

182+
def check_channel_env_request(self, channel, name, value):
183+
if not hasattr(channel, 'environment'):
184+
channel.environment = {}
185+
channel.environment.update({name: value})
186+
return True
187+
179188
def _read_response(self, channel, process):
180189
gevent.sleep(0)
181190
logger.debug("Waiting for output")
182191
for line in process.stdout:
183192
channel.send(line)
193+
for line in process.stderr:
194+
channel.send_stderr(line)
184195
process.communicate()
185196
channel.send_exit_status(process.returncode)
186197
logger.debug("Command finished with return code %s", process.returncode)

0 commit comments

Comments
 (0)