lib/autobuild/reporting.rb in autobuild-1.8.3 vs lib/autobuild/reporting.rb in autobuild-1.9.0.b1
- old
+ new
@@ -32,27 +32,31 @@
display_message(*args)
end
end
def self.display_message(*args)
+ io = STDOUT
+ if args.last.kind_of?(IO)
+ io = args.pop
+ end
msg =
if args.empty? then ""
else "#{color(*args)}"
end
if !Autobuild.progress_display_enabled?
- puts msg
+ io.puts msg
return
end
size =
if @last_progress_msg then @last_progress_msg.size
else 0
end
if !silent?
- puts "\r#{msg}#{" " * [size - msg.size, 0].max}"
+ io.puts "\r#{msg}#{" " * [size - msg.size, 0].max}"
if @last_progress_msg
print "#{@last_progress_msg}"
end
end
end
@@ -62,16 +66,16 @@
end
@progress_messages = Array.new
# Displays an error message
def self.error(message = "")
- message(" ERROR: #{message}", :red, :bold)
+ message(" ERROR: #{message}", :red, :bold, STDERR)
end
# Displays a warning message
def self.warn(message = "", *style)
- message(" WARN: #{message}", :magenta, *style)
+ message(" WARN: #{message}", :magenta, *style, STDERR)
end
# @return [Boolean] true if there is some progress messages for the given
# key
def self.has_progress_for?(key)
@@ -100,11 +104,11 @@
yield
if options[:done_message] && has_progress_for?(key)
progress(key, *options[:done_message])
end
progress_done(key, true)
- rescue Exception => e
+ rescue Exception
progress_done(key, false)
raise
end
end
end
@@ -333,10 +337,10 @@
end
## Display using stdout
class StdoutReporter < Reporter
def error(error)
- puts "Build failed: #{error}"
+ STDERR.puts "Build failed: #{error}"
end
def success
puts "Build finished successfully at #{Time.now}"
if Autobuild.post_success_message
puts Autobuild.post_success_message