brew/Library/Homebrew/cmd/doctor.rb

62 lines
1.6 KiB
Ruby
Raw Normal View History

2016-04-08 16:28:43 +02:00
#: * `doctor`:
#: Check your system for potential problems. Doctor exits with a non-zero status
#: if any problems are found.
# Undocumented options:
# -D activates debugging and profiling of the audit methods (not the same as --debug)
require "diagnostic"
module Homebrew
2016-09-26 01:44:51 +02:00
module_function
2010-11-09 13:00:33 +00:00
def doctor
inject_dump_stats!(Diagnostic::Checks, /^check_*/) if ARGV.switch? "D"
checks = Diagnostic::Checks.new
if ARGV.include? "--list-checks"
puts checks.all.sort
2012-11-13 16:49:43 -06:00
exit
end
if ARGV.named.empty?
slow_checks = %w[
check_for_broken_symlinks
check_missing_deps
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|
2016-08-16 11:16:37 +01:00
$stderr.puts "Checking #{method}" if ARGV.debug?
unless checks.respond_to?(method)
Homebrew.failed = true
puts "No check available by the name: #{method}"
next
end
out = checks.send(method)
2016-09-10 10:24:56 +01:00
next if out.nil? || out.empty?
if first_warning
2017-10-15 02:28:32 +02:00
$stderr.puts <<~EOS
2016-08-30 21:38:13 +02:00
#{Tty.bold}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}
2016-09-10 10:24:56 +01:00
EOS
end
2016-09-10 10:24:56 +01:00
$stderr.puts
opoo out
Homebrew.failed = true
first_warning = false
end
2010-11-09 13:00:33 +00:00
puts "Your system is ready to brew." unless Homebrew.failed?
end
end