aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/cleanup.rb
diff options
context:
space:
mode:
authorXiyue Deng2012-11-08 02:19:05 -0800
committerMike McQuaid2012-11-30 21:37:56 +0000
commit2a1ec18ff93d92debed03e036c53785108ee4858 (patch)
tree85b6c16898d3f2f394f28d1f74c40f761878d373 /Library/Homebrew/cmd/cleanup.rb
parent9c294364c63e61da8a1e292ca8f7894354e5218d (diff)
downloadbrew-2a1ec18ff93d92debed03e036c53785108ee4858.tar.bz2
brew cleanup: don't remove higher version kegs.
* Use version compare to only remove kegs with lower version than the current one, not higher version which might be from someone's branch. * Do the same for cache cleanup. - Be conservative so that if a name detected from cache file is not the same as its formula then don't clean it. Closes Homebrew/homebrew#15914. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
Diffstat (limited to 'Library/Homebrew/cmd/cleanup.rb')
-rw-r--r--Library/Homebrew/cmd/cleanup.rb4
1 files changed, 2 insertions, 2 deletions
diff --git a/Library/Homebrew/cmd/cleanup.rb b/Library/Homebrew/cmd/cleanup.rb
index 22b17f657..401a2fa1e 100644
--- a/Library/Homebrew/cmd/cleanup.rb
+++ b/Library/Homebrew/cmd/cleanup.rb
@@ -33,7 +33,7 @@ module Homebrew extend self
if f.installed? and f.rack.directory?
f.rack.children.each do |keg|
- if f.installed_prefix != keg
+ if f.version > Keg.new(keg).version
if f.can_cleanup?
if ARGV.dry_run?
puts "Would remove: #{keg}"
@@ -61,7 +61,7 @@ module Homebrew extend self
if name and version
f = Formula.factory(name) rescue nil
old_bottle = bottle_file_outdated? f, pn
- if not f or (f.version != version or ARGV.switch? "s" and not f.installed?) or old_bottle
+ if (f and f.version > version) or (ARGV.switch? "s" and (f and (not f.installed?))) or old_bottle
if ARGV.dry_run?
puts "Would remove: #{pn}"
else