From 0d84f3ee17451ed56c3d834aeba3f8b5fcbd77f7 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Tue, 22 Dec 2009 11:31:54 -0600 Subject: [PATCH] Add cleanup command * `brew cleanup foo` removes any unlinked foo kegs * `brew cleanup` removes all unlinked kegs --- Library/Homebrew/brew.h.rb | 16 ++++++++++++++++ bin/brew | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb index 51221a23f5..55a416c095 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 0b14d9751d..9c0a34c295 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)