diff options
| -rw-r--r-- | Library/Homebrew/cmd/doctor.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/missing.rb | 24 |
2 files changed, 13 insertions, 13 deletions
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index b6207112a..891ff70a5 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -872,7 +872,7 @@ end def check_missing_deps return unless HOMEBREW_CELLAR.exist? s = Set.new - Homebrew.missing_deps(Homebrew.installed_brews).each do |_, deps| + Homebrew.missing_deps(Formula.installed).each do |_, deps| s.merge deps end diff --git a/Library/Homebrew/cmd/missing.rb b/Library/Homebrew/cmd/missing.rb index 7f4417081..ea0df4a1d 100644 --- a/Library/Homebrew/cmd/missing.rb +++ b/Library/Homebrew/cmd/missing.rb @@ -1,21 +1,21 @@ require 'formula' +require 'tab' module Homebrew extend self - def installed_brews - formulae = [] - HOMEBREW_CELLAR.subdirs.each do |rack| - f = Formula.factory rack.basename.to_s rescue nil - formulae << f if f and f.rack.exist? and f.rack.subdirs.length > 0 - end - formulae - end - def missing_deps ff missing = {} ff.each do |f| - missing_deps = f.recursive_deps.uniq.reject do |dep| - dep.rack.exist? and dep.rack.subdirs.length > 0 + missing_deps = f.recursive_dependencies do |dependent, dep| + if dep.optional? || dep.recommended? + tab = Tab.for_formula(dependent) + Dependency.prune unless tab.with?(dep.name) + elsif dep.build? + Dependency.prune end + end + + missing_deps.map!(&:to_formula) + missing_deps.reject! { |d| d.rack.exist? && d.rack.subdirs.length > 0 } unless missing_deps.empty? yield f.name, missing_deps if block_given? @@ -29,7 +29,7 @@ module Homebrew extend self return unless HOMEBREW_CELLAR.exist? ff = if ARGV.named.empty? - installed_brews + Formula.installed else ARGV.formulae end |
