uninstall: stop assuming kegs always map to formulae

This commit is contained in:
Jack Nagel 2013-05-15 22:13:56 -05:00
parent d3a8cb7803
commit 12b63fdd5c

View File

@ -23,20 +23,18 @@ module Homebrew extend self
raise "Invalid usage" if name.include? '/' raise "Invalid usage" if name.include? '/'
rack = HOMEBREW_CELLAR/name rack = HOMEBREW_CELLAR/name
if rack.directory? if rack.directory?
puts "Uninstalling #{name}..." puts "Uninstalling #{name}..."
rack.children.each do |keg| rack.subdirs.map { |d| Keg.new(d) }.each do |keg|
if keg.directory? keg.unlink
keg = Keg.new(keg) keg.rmtree
keg.unlink
Formula.factory(keg.fname).unpin
keg.rmtree
end
end end
rack.rmtree rack.rmtree
end end
rm_opt_link name rm_opt_link name
rm_pin name
end end
end end
rescue MultipleVersionsInstalledError => e rescue MultipleVersionsInstalledError => e