aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorAdam Vandenberg2010-10-17 17:52:10 -0700
committerAdam Vandenberg2010-10-17 17:52:10 -0700
commit3ca30d2d5b5664216446f9752d81129d4a758bdd (patch)
tree437c053e8aa334187f81254edf5515cc170f9af8 /bin
parent55152f0be4e03f465bbc7d4fb6c78de4d13369ef (diff)
downloadhomebrew-3ca30d2d5b5664216446f9752d81129d4a758bdd.tar.bz2
Add remove --force
Diffstat (limited to 'bin')
-rwxr-xr-xbin/brew31
1 files changed, 23 insertions, 8 deletions
diff --git a/bin/brew b/bin/brew
index 3e2dbf9a7..7531d59ed 100755
--- a/bin/brew
+++ b/bin/brew
@@ -188,15 +188,30 @@ begin
ARGV.kegs.each {|keg| puts "#{keg.unlink} links removed for #{keg}"}
when 'rm', 'uninstall', 'remove'
- begin
- ARGV.kegs.each do |keg|
- puts "Uninstalling #{keg}..."
- keg.unlink
- keg.uninstall
+ if ARGV.flag? "--force"
+ require 'formula'
+ ARGV.formulae.each do |f|
+ formula_cellar = f.prefix.parent
+ next unless File.exist? formula_cellar
+ puts "Uninstalling #{f.name}..."
+ formula_cellar.children do |k|
+ keg = Keg.new(k)
+ keg.unlink
+ end
+
+ formula_cellar.rmtree
+ end
+ else
+ begin
+ ARGV.kegs.each do |keg|
+ puts "Uninstalling #{keg}..."
+ keg.unlink
+ keg.uninstall
+ end
+ rescue MultipleVersionsInstalledError => e
+ onoe e
+ puts "Use `brew remove --force #{e.name}` to remove all versions."
end
- rescue MultipleVersionsInstalledError => e
- onoe e
- puts "Use `brew remove --force #{e.name}` to remove all versions."
end
when 'prune'