diff options
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 |
