Move brew output for BuildError into BuildError

So upgrade can output errors but continue to upgrade the rest of the installation.
This commit is contained in:
Max Howell 2012-03-07 11:11:05 +00:00
parent 735b6337a1
commit 15a70c36d0
2 changed files with 37 additions and 31 deletions

View File

@ -121,6 +121,42 @@ class BuildError < Homebrew::InstallationError
def was_running_configure? def was_running_configure?
@command == './configure' @command == './configure'
end end
def dump
e = self
require 'cmd/--config'
require 'cmd/--env'
e.backtrace[1] =~ %r{Library/Formula/(.+)\.rb:(\d+)}
formula_name = $1
error_line = $2
ohai "Exit Status: #{e.exit_status}"
puts "http://github.com/mxcl/homebrew/blob/master/Library/Formula/#{formula_name}.rb#L#{error_line}"
ohai "Environment"
puts Homebrew.config_s
ohai "Build Flags"
puts %["--use-clang" was specified] if ARGV.include? '--use-clang'
puts %["--use-llvm" was specified] if ARGV.include? '--use-llvm'
puts %["--use-gcc" was specified] if ARGV.include? '--use-gcc'
Homebrew.dump_build_env e.env
puts
onoe e
issues = GitHub.issues_for_formula formula_name
if issues.empty?
puts "If `brew doctor' does not help diagnose the issue, please report the bug:"
puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}"
else
puts "These existing issues may help you:", *issues.map{ |s| " #{Tty.em}#{s}#{Tty.reset}" }
puts "Otherwise, please report the bug:"
puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}"
end
if e.was_running_configure?
puts "We saved the configure log, please gist it if you report the issue:"
puts " ~/Library/Logs/Homebrew/config.log"
end
end
end end
# raised in CurlDownloadStrategy.fetch # raised in CurlDownloadStrategy.fetch

View File

@ -106,37 +106,7 @@ rescue Interrupt => e
puts # seemingly a newline is typical puts # seemingly a newline is typical
exit 130 exit 130
rescue BuildError => e rescue BuildError => e
require 'cmd/--config' e.dump
require 'cmd/--env'
e.backtrace[1] =~ %r{Library/Formula/(.+)\.rb:(\d+)}
formula_name = $1
error_line = $2
ohai "Exit Status: #{e.exit_status}"
puts "http://github.com/mxcl/homebrew/blob/master/Library/Formula/#{formula_name}.rb#L#{error_line}"
ohai "Environment"
puts Homebrew.config_s
ohai "Build Flags"
puts %["--use-clang" was specified] if ARGV.include? '--use-clang'
puts %["--use-llvm" was specified] if ARGV.include? '--use-llvm'
puts %["--use-gcc" was specified] if ARGV.include? '--use-gcc'
Homebrew.dump_build_env e.env
puts
onoe e
issues = GitHub.issues_for_formula formula_name
if issues.empty?
puts "If `brew doctor' does not help diagnose the issue, please report the bug:"
puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}"
else
puts "These existing issues may help you:", *issues.map{ |s| " #{Tty.em}#{s}#{Tty.reset}" }
puts "Otherwise, please report the bug:"
puts " #{Tty.em}#{ISSUES_URL}#{Tty.reset}"
end
if e.was_running_configure?
puts "We saved the configure log, please gist it if you report the issue:"
puts " ~/Library/Logs/Homebrew/config.log"
end
exit 1 exit 1
rescue RuntimeError, SystemCallError => e rescue RuntimeError, SystemCallError => e
onoe e onoe e