diff options
| author | Alyssa Ross | 2016-10-05 22:22:32 +0100 |
|---|---|---|
| committer | Alyssa Ross | 2016-10-25 22:36:13 +0100 |
| commit | a4dc835ba06e7d1cd2a6b6b4ffacf4416b35ffea (patch) | |
| tree | 0aad27e26236742786fce6590a281f62ae69d227 /Library/Homebrew/cmd | |
| parent | 422f38b945ac9f13ea5f9290b022a18c811445e4 (diff) | |
| download | brew-a4dc835ba06e7d1cd2a6b6b4ffacf4416b35ffea.tar.bz2 | |
uninstall: call Formula#missing_dependencies directly
Diffstat (limited to 'Library/Homebrew/cmd')
| -rw-r--r-- | Library/Homebrew/cmd/uninstall.rb | 14 |
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 |
