cleanup: refactor cleanup_formula

This commit is contained in:
Jack Nagel 2013-05-15 12:45:38 -05:00
parent 87a8f9a6ae
commit b26c502f79

View File

@ -34,24 +34,14 @@ module Homebrew extend self
def cleanup_formula f def cleanup_formula f
if f.installed? if f.installed?
f.rack.subdirs.map { |d| Keg.new(d) }.each do |keg| eligible_kegs = f.rack.subdirs.map { |d| Keg.new(d) }.select { |k| f.version > k.version }
if f.version > keg.version eligible_kegs.each do |keg|
if f.can_cleanup? if f.can_cleanup?
if !keg.linked? cleanup_keg(keg)
if ARGV.dry_run?
puts "Would remove: #{keg}"
else
puts "Removing: #{keg}..."
keg.rmtree
end
else
opoo "Skipping (old) #{keg} due to it being linked"
end
else else
opoo "Skipping (old) keg-only: #{keg}" opoo "Skipping (old) keg-only: #{keg}"
end end
end end
end
elsif f.rack.subdirs.length > 1 elsif f.rack.subdirs.length > 1
# If the cellar only has one version installed, don't complain # If the cellar only has one version installed, don't complain
# that we can't tell which one to keep. # that we can't tell which one to keep.
@ -59,6 +49,17 @@ module Homebrew extend self
end end
end end
def cleanup_keg keg
if keg.linked?
opoo "Skipping (old) #{keg} due to it being linked"
elsif ARGV.dry_run?
puts "Would remove: #{keg}"
else
puts "Removing: #{keg}..."
keg.rmtree
end
end
def cleanup_cache def cleanup_cache
return unless HOMEBREW_CACHE.directory? return unless HOMEBREW_CACHE.directory?
HOMEBREW_CACHE.children.select(&:file?).each do |pn| HOMEBREW_CACHE.children.select(&:file?).each do |pn|