aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/exceptions.rb36
-rwxr-xr-xbin/brew32
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
diff --git a/bin/brew b/bin/brew
index 462f6328b..f2eac398d 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