aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorAlyssa Ross2016-10-05 22:22:32 +0100
committerAlyssa Ross2016-10-25 22:36:13 +0100
commita4dc835ba06e7d1cd2a6b6b4ffacf4416b35ffea (patch)
tree0aad27e26236742786fce6590a281f62ae69d227 /Library/Homebrew/cmd
parent422f38b945ac9f13ea5f9290b022a18c811445e4 (diff)
downloadbrew-a4dc835ba06e7d1cd2a6b6b4ffacf4416b35ffea.tar.bz2
uninstall: call Formula#missing_dependencies directly
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/uninstall.rb14
1 files changed, 11 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb
index f9cf56f44..2c7be04be 100644
--- a/Library/Homebrew/cmd/uninstall.rb
+++ b/Library/Homebrew/cmd/uninstall.rb
@@ -76,7 +76,7 @@ module Homebrew
end
def check_for_dependents(kegs)
- return false unless result = find_some_installed_dependents(kegs)
+ return false unless result = Keg.find_some_installed_dependents(kegs)
requireds, dependents = result
@@ -108,8 +108,16 @@ module Homebrew
remaining_formulae = Formula.installed.select { |f|
f.installed_kegs.any? { |k| Tab.for_keg(k).runtime_dependencies.nil? }
}
- Diagnostic.missing_deps(remaining_formulae, kegs.map(&:name)) do |dependent, required|
- kegs_by_name = kegs.group_by(&:to_formula)
+
+ keg_names = kegs.map(&:name)
+ kegs_by_name = kegs.group_by(&:to_formula)
+ remaining_formulae.each do |dependent|
+ required = dependent.missing_dependencies(hide: keg_names)
+ required.select! do |f|
+ kegs_by_name.key?(f)
+ end
+ next unless required.any?
+
required_kegs = required.map { |f| kegs_by_name[f].sort_by(&:version).last }
return required_kegs, [dependent]
end