aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/doctor.rb5
-rw-r--r--Library/Homebrew/cmd/missing.rb32
2 files changed, 15 insertions, 22 deletions
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb
index 7d5a4711a..a553e5dc3 100644
--- a/Library/Homebrew/cmd/doctor.rb
+++ b/Library/Homebrew/cmd/doctor.rb
@@ -764,9 +764,8 @@ end
def check_missing_deps
return unless HOMEBREW_CELLAR.exist?
s = Set.new
- missing_deps = Homebrew.find_missing_brews(Homebrew.installed_brews)
- missing_deps.each do |m|
- s.merge m[1]
+ Homebrew.missing_deps(Homebrew.installed_brews).each do |_, deps|
+ s.merge deps
end
if s.length > 0 then <<-EOS.undent
diff --git a/Library/Homebrew/cmd/missing.rb b/Library/Homebrew/cmd/missing.rb
index 26d6e3340..7f4417081 100644
--- a/Library/Homebrew/cmd/missing.rb
+++ b/Library/Homebrew/cmd/missing.rb
@@ -1,47 +1,41 @@
require 'formula'
-require 'cmd/outdated'
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.installed?
+ formulae << f if f and f.rack.exist? and f.rack.subdirs.length > 0
end
formulae
end
- def find_missing_brews top_level
- # Names of outdated brews; they count as installed.
- outdated = Homebrew.outdated_brews.collect{ |b| b.name }
-
- brews = []
- top_level.each do |f|
- missing_deps = f.recursive_deps.map{ |g| g.name }.uniq.reject do |dep_name|
- Formula.factory(dep_name).installed? or outdated.include?(dep_name)
- 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
+ end
unless missing_deps.empty?
- brews << [f.name, missing_deps]
+ yield f.name, missing_deps if block_given?
+ missing[f.name] = missing_deps
end
end
- brews
+ missing
end
def missing
return unless HOMEBREW_CELLAR.exist?
- formulae_to_check = if ARGV.named.empty?
+ ff = if ARGV.named.empty?
installed_brews
else
ARGV.formulae
end
- missing_deps = find_missing_brews(formulae_to_check)
- missing_deps.each do |d|
- name = d[0]
- missing = d[1]
- print "#{name}: " if formulae_to_check.size > 1
+ missing_deps(ff) do |name, missing|
+ print "#{name}: " if ff.size > 1
puts "#{missing * ' '}"
end
end