brew/Library/Homebrew/cmd/uninstall.rb
Max Howell 6868bf0d6e Don't require formula files for brew rm --force
In fixing this I also made it so that ARGV.kegs will return the LinkedKeg if the symlink is set. Which is almost always is. This neatly avoids most multiple-kegs issues.

Fixes Homebrew/homebrew#10685.
2012-03-06 13:47:31 +00:00

40 lines
924 B
Ruby

require 'keg'
require 'formula'
module Homebrew extend self
def uninstall
raise KegUnspecifiedError if ARGV.named.empty?
if not ARGV.force?
ARGV.kegs.each do |keg|
puts "Uninstalling #{keg}..."
keg.unlink
keg.uninstall
end
else
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
rack.rmtree
end
end
end
rescue MultipleVersionsInstalledError => e
onoe e
puts "Use `brew remove --force #{e.name}` to remove all versions."
end
end