lib/rake_script/shell.rb in rake_script-0.4.0 vs lib/rake_script/shell.rb in rake_script-0.4.1
- old
+ new
@@ -66,16 +66,25 @@
# @param stderr [Proc] each command error output line will be passed to this proc.
# @return [Process::Status] status object for command.
def raw_execute(command_line, stdout:, stderr:)
Open3.popen3(command_line) do |_stdin_io, stdout_io, stderr_io, wait_thread|
Thread.new do
- until (raw_line = stdout_io.gets).nil? do
- stdout.call(raw_line)
+ begin
+ until (raw_line = stdout_io.gets).nil? do
+ stdout.call(raw_line)
+ end
+ rescue IOError => _
+ # command process was closed and it's ok
end
+
end
Thread.new do
- until (raw_line = stderr_io.gets).nil? do
- stderr.call(raw_line)
+ begin
+ until (raw_line = stderr_io.gets).nil? do
+ stderr.call(raw_line)
+ end
+ rescue IOError => _
+ # command process was closed and it's ok
end
end
wait_thread.value
end
end