brew/Library/Homebrew/cmd/cleanup.rb
Adam Vandenberg f0b6f6853a Silence cleanup warning
When a cellar exists for an unknown formula, no longer print a warning.
External tools using Brew to manage diy-installs will create a large
number of non-formula cellars.
2011-03-12 11:55:10 -08:00

42 lines
1004 B
Ruby

require 'formula'
require 'cmd/prune'
module Homebrew extend self
def cleanup
if ARGV.named.empty?
HOMEBREW_CELLAR.children.each do |rack|
begin
cleanup_formula rack.basename.to_s if rack.directory?
rescue FormulaUnavailableError => e
end
end
# seems like a good time to do some additional cleanup
Homebrew.prune
else
ARGV.formulae.each do |f|
cleanup_formula f
end
end
end
def cleanup_formula f
f = Formula.factory f
rack = f.prefix.parent
if f.installed? and rack.directory?
rack.children.each do |keg|
if f.installed_prefix != keg
print "Uninstalling #{keg}..."
rm_rf keg
puts
end
end
elsif rack.children.length > 1
# If the cellar only has one version installed, don't complain
# that we can't tell which one to keep.
opoo "Skipping #{name}: most recent version #{f.version} not installed"
end
end
end