diff options
| author | Joshua Peek | 2009-12-22 11:31:54 -0600 |
|---|---|---|
| committer | Max Howell | 2010-01-18 08:27:50 +0000 |
| commit | 0d84f3ee17451ed56c3d834aeba3f8b5fcbd77f7 (patch) | |
| tree | e7738387ac78b6ff7ad6bc52c07fc1f91996a814 | |
| parent | 4bfb7cf24dd39957729bd0acc05f3f2aed4b6b63 (diff) | |
| download | brew-0d84f3ee17451ed56c3d834aeba3f8b5fcbd77f7.tar.bz2 | |
Add cleanup command
* `brew cleanup foo` removes any unlinked foo kegs
* `brew cleanup` removes all unlinked kegs
| -rw-r--r-- | Library/Homebrew/brew.h.rb | 16 | ||||
| -rwxr-xr-x | bin/brew | 10 |
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 @@ -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) |
