Add cleanup command

* `brew cleanup foo` removes any unlinked foo kegs
* `brew cleanup` removes all unlinked kegs
This commit is contained in:
Joshua Peek 2009-12-22 11:31:54 -06:00 committed by Max Howell
parent 4bfb7cf24d
commit 0d84f3ee17
2 changed files with 26 additions and 0 deletions

View File

@ -245,6 +245,22 @@ rescue
[]
end
def cleanup name
require 'formula'
f = Formula.factory name
if f.prefix.parent.directory?
kids = f.prefix.parent.children
kids.each do |keg|
next if f.prefix == keg
print "Uninstalling #{keg}..."
FileUtils.rm_rf keg
puts
end
end
end
def clean f
Cleaner.new f

View File

@ -207,6 +207,16 @@ begin
ARGV.named.each {|name| info name}
end
when 'cleanup'
if ARGV.named.empty?
require 'formula'
`ls #{HOMEBREW_CELLAR}`.each do |name|
cleanup name.strip
end
else
ARGV.named.each { |name| cleanup name}
end
when 'install'
check_for_blacklisted_formula(ARGV.named)