aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/uninstall.rb19
1 files changed, 13 insertions, 6 deletions
diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb
index 6f0025c48..cddb8ac65 100644
--- a/Library/Homebrew/cmd/uninstall.rb
+++ b/Library/Homebrew/cmd/uninstall.rb
@@ -1,27 +1,34 @@
require 'keg'
+require 'formula'
module Homebrew extend self
def uninstall
raise KegUnspecifiedError if ARGV.named.empty?
- unless ARGV.force?
+ if not ARGV.force?
ARGV.kegs.each do |keg|
puts "Uninstalling #{keg}..."
keg.unlink
keg.uninstall
end
else
- ARGV.formulae.each do |f|
- if f.rack.directory?
- puts "Uninstalling #{f}..."
- f.rack.children.each do |keg|
+ ARGV.named.each do |name|
+ name = Formula.canonical_name(name)
+
+ # FIXME canonical_name is insane
+ raise "Invalid usage" if name.include? '/'
+
+ rack = HOMEBREW_CELLAR/name
+ if rack.directory?
+ puts "Uninstalling #{name}..."
+ rack.children.each do |keg|
if keg.directory?
keg = Keg.new(keg)
keg.unlink
keg.rmtree
end
end
- f.rack.rmtree
+ rack.rmtree
end
end
end