From e074154a413b9362d35658d8dd4e23837dde5d51 Mon Sep 17 00:00:00 2001 From: Steve Kamerman Date: Thu, 28 Sep 2017 22:05:31 -0400 Subject: [PATCH 1/2] Don't exit loop until an exit code is returned --- src/ProcessManager.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ProcessManager.php b/src/ProcessManager.php index 94de0f1..c283b54 100644 --- a/src/ProcessManager.php +++ b/src/ProcessManager.php @@ -8,7 +8,7 @@ * @package kamermans\Command */ class ProcessManager { - + protected $cmd; protected $buffers; protected $handle; @@ -74,7 +74,7 @@ public function exec($callback, $callbacklines, $buffer_size, $cwd, $env, $conf) } $finished_handles = count(array_filter($this->io_reads, 'feof')); - if ($finished_handles === count($this->io_reads)) { + if ($exit_code !== null && $finished_handles === count($this->io_reads)) { break; } @@ -243,8 +243,8 @@ protected function setupStreams($callback, $callbacklines, $buffer_size) } else if ($this->isStdInStreaming()) { // STDIN is streaming to the process $stdin_stream = new Stream\StreamWriter( - $this->buffers[Command::STDIN], - $this->io_handles[Command::STDIN], + $this->buffers[Command::STDIN], + $this->io_handles[Command::STDIN], $buffer_size ); } else { From 992062475622ad2011d2ddebf0730c38228b1ec3 Mon Sep 17 00:00:00 2001 From: Steve Kamerman Date: Thu, 28 Sep 2017 22:31:09 -0400 Subject: [PATCH 2/2] Suppress warning if stream is closed just before fwrite() --- src/Stream/StreamWriter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Stream/StreamWriter.php b/src/Stream/StreamWriter.php index fcdf81e..a96f836 100644 --- a/src/Stream/StreamWriter.php +++ b/src/Stream/StreamWriter.php @@ -55,7 +55,7 @@ public function write($auto_close=true) $this->buffer .= stream_get_contents($this->stream, $this->buffer_size); } - $bytes_written = fwrite($this->dest_stream, $this->buffer); + $bytes_written = @fwrite($this->dest_stream, $this->buffer); if ($bytes_written === false) { return 0;