diff options
| -rw-r--r-- | Library/Homebrew/exceptions.rb | 36 | ||||
| -rwxr-xr-x | bin/brew | 32 | 
2 files changed, 37 insertions, 31 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 @@ -106,37 +106,7 @@ rescue Interrupt => e    puts # seemingly a newline is typical    exit 130  rescue BuildError => e -  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 +  e.dump    exit 1  rescue RuntimeError, SystemCallError => e    onoe e | 
