cleanup: use installed_prefixes/installed_kegs

This commit is contained in:
Xu Cheng 2015-11-29 15:26:08 +08:00
parent 0686ebfcc0
commit cc8859f86a

View File

@ -33,13 +33,13 @@ module Homebrew
def cleanup_formula(f)
if f.installed?
eligible_kegs = f.rack.subdirs.map { |d| Keg.new(d) }.select { |k| f.pkg_version > k.version }
eligible_kegs = f.installed_kegs.select { |k| f.pkg_version > k.version }
if eligible_kegs.any? && eligible_for_cleanup?(f)
eligible_kegs.each { |keg| cleanup_keg(keg) }
else
eligible_kegs.each { |keg| opoo "Skipping (old) keg-only: #{keg}" }
end
elsif f.rack.subdirs.length > 1
elsif f.installed_prefixes.any?
# If the cellar only has one version installed, don't complain
# that we can't tell which one to keep.
opoo "Skipping #{f.full_name}: most recent version #{f.pkg_version} not installed"
@ -172,7 +172,7 @@ module Homebrew
f.deps.any? do |d|
d.to_formula.full_name == formula.full_name rescue d.name == formula.name
end
end.all? { |f| f.rack.subdirs.all? { |keg| Tab.for_keg(keg).HEAD } }
end.all? { |f| f.installed_prefixes.all? { |keg| Tab.for_keg(keg).HEAD } }
end
end
end