Permalink
Find file
54 lines (45 sloc) 1.33 KB
require "diagnostic"
module Homebrew
def doctor
checks = Diagnostic::Checks.new
if ARGV.include? "--list-checks"
puts checks.all.sort
exit
end
checks.inject_dump_stats! if ARGV.switch? "D"
if ARGV.named.empty?
slow_checks = %w[
check_for_broken_symlinks
check_missing_deps
check_for_outdated_homebrew
check_for_linked_keg_only_brews
]
methods = (checks.all.sort - slow_checks) + slow_checks
else
methods = ARGV.named
end
first_warning = true
methods.each do |method|
unless checks.respond_to?(method)
Homebrew.failed = true
puts "No check available by the name: #{method}"
next
end
out = checks.send(method)
unless out.nil? || out.empty?
if first_warning
$stderr.puts <<-EOS.undent
#{Tty.white}Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!#{Tty.reset}
EOS
end
$stderr.puts
opoo out
Homebrew.failed = true
first_warning = false
end
end
puts "Your system is ready to brew." unless Homebrew.failed?
end
end