diff options
| author | Joshua Peek | 2009-12-22 11:31:54 -0600 |
|---|---|---|
| committer | Max Howell | 2010-01-18 08:27:50 +0000 |
| commit | ffd39835ec005a783fffdd5ef0bca2754f3117ad (patch) | |
| tree | da6944b60bc8f693d429765be21e12507e12d858 | |
| parent | ae3f858f07b1e684478cd9f07abeeae5c0a11e91 (diff) | |
| download | homebrew-ffd39835ec005a783fffdd5ef0bca2754f3117ad.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) |
