From 15a70c36d0267af15f1c28c45a8a1bcd0c7b783f Mon Sep 17 00:00:00 2001 From: Max Howell Date: Wed, 7 Mar 2012 11:11:05 +0000 Subject: [PATCH] Move brew output for BuildError into BuildError So upgrade can output errors but continue to upgrade the rest of the installation. --- Library/Homebrew/exceptions.rb | 36 ++++++++++++++++++++++++++++++++++ bin/brew | 32 +----------------------------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb index 633db61066..6db601fe12 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 diff --git a/bin/brew b/bin/brew index 462f6328be..f2eac398d9 100755 --- a/bin/brew +++ b/bin/brew @@ -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