aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Library/Homebrew/brew.h.rb16
-rwxr-xr-xbin/brew10
2 files changed, 26 insertions, 0 deletions
diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb
index 51221a23f..55a416c09 100644
--- a/Library/Homebrew/brew.h.rb
+++ b/Library/Homebrew/brew.h.rb
@@ -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
diff --git a/bin/brew b/bin/brew
index 0b14d9751..9c0a34c29 100755
--- a/bin/brew
+++ b/bin/brew
@@ -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)