Don’t use ohai for SystemCommand output.
This commit is contained in:
parent
9b21422b72
commit
b45996dada
@ -25,11 +25,11 @@ module Hbc
|
|||||||
each_output_line do |type, line|
|
each_output_line do |type, line|
|
||||||
case type
|
case type
|
||||||
when :stdout
|
when :stdout
|
||||||
|
puts line.chomp if print_stdout?
|
||||||
processed_output[:stdout] << line
|
processed_output[:stdout] << line
|
||||||
ohai line.chomp if print_stdout?
|
|
||||||
when :stderr
|
when :stderr
|
||||||
|
$stderr.puts Formatter.error(line.chomp) if print_stderr?
|
||||||
processed_output[:stderr] << line
|
processed_output[:stderr] << line
|
||||||
ohai line.chomp if print_stderr?
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -100,17 +100,23 @@ module Hbc
|
|||||||
|
|
||||||
def each_line_from(sources)
|
def each_line_from(sources)
|
||||||
loop do
|
loop do
|
||||||
readable_sources = IO.select(sources)[0]
|
readable_sources, = IO.select(sources)
|
||||||
readable_sources.delete_if(&:eof?).first(1).each do |source|
|
|
||||||
type = ((source == sources[0]) ? :stdout : :stderr)
|
readable_sources = readable_sources.reject(&:eof?)
|
||||||
|
|
||||||
|
break if readable_sources.empty?
|
||||||
|
|
||||||
|
readable_sources.each do |source|
|
||||||
begin
|
begin
|
||||||
yield(type, source.readline_nonblock || "")
|
line = source.readline_nonblock || ""
|
||||||
|
type = (source == sources[0]) ? :stdout : :stderr
|
||||||
|
yield(type, line)
|
||||||
rescue IO::WaitReadable, EOFError
|
rescue IO::WaitReadable, EOFError
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
break if readable_sources.empty?
|
|
||||||
end
|
end
|
||||||
|
|
||||||
sources.each(&:close_read)
|
sources.each(&:close_read)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user