diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/cleanup.rb | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/Library/Homebrew/cmd/cleanup.rb b/Library/Homebrew/cmd/cleanup.rb index 7b5dc3aac..cac1eb755 100644 --- a/Library/Homebrew/cmd/cleanup.rb +++ b/Library/Homebrew/cmd/cleanup.rb @@ -34,22 +34,12 @@ module Homebrew extend self def cleanup_formula f if f.installed? - f.rack.subdirs.map { |d| Keg.new(d) }.each do |keg| - if f.version > keg.version - if f.can_cleanup? - if !keg.linked? - 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 - opoo "Skipping (old) keg-only: #{keg}" - end + eligible_kegs = f.rack.subdirs.map { |d| Keg.new(d) }.select { |k| f.version > k.version } + eligible_kegs.each do |keg| + if f.can_cleanup? + cleanup_keg(keg) + else + opoo "Skipping (old) keg-only: #{keg}" end end elsif f.rack.subdirs.length > 1 @@ -59,6 +49,17 @@ module Homebrew extend self 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 return unless HOMEBREW_CACHE.directory? HOMEBREW_CACHE.children.select(&:file?).each do |pn| |
