diff options
| author | Max Howell | 2012-03-07 11:11:05 +0000 |
|---|---|---|
| committer | Max Howell | 2012-03-07 12:33:47 +0000 |
| commit | 15a70c36d0267af15f1c28c45a8a1bcd0c7b783f (patch) | |
| tree | e8f9b9230aaaaf848f080c4d6ded954d0a4b4d26 /Library/Homebrew/exceptions.rb | |
| parent | 735b6337a120b54bf1fcad5131bfdab951dc34f8 (diff) | |
| download | brew-15a70c36d0267af15f1c28c45a8a1bcd0c7b783f.tar.bz2 | |
Move brew output for BuildError into BuildError
So upgrade can output errors but continue to upgrade the rest of the installation.
Diffstat (limited to 'Library/Homebrew/exceptions.rb')
| -rw-r--r-- | Library/Homebrew/exceptions.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb index 633db6106..6db601fe1 100644 --- a/Library/Homebrew/exceptions.rb +++ b/Library/Homebrew/exceptions.rb @@ -121,6 +121,42 @@ class BuildError < Homebrew::InstallationError def was_running_configure? @command == './configure' 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 # raised in CurlDownloadStrategy.fetch |
