Fix uninstall --force for casks.

This commit is contained in:
Markus Reiter 2021-03-24 13:24:24 +01:00
parent ed87211daa
commit 45066f9144

View File

@ -91,8 +91,8 @@ module Homebrew
when :keg when :keg
resolve_keg(name) resolve_keg(name)
when :kegs when :kegs
rack = Formulary.to_rack(name) _, kegs = resolve_kegs(name)
rack.directory? ? rack.subdirs.map { |d| Keg.new(d) } : [] kegs
else else
raise raise
end end
@ -259,15 +259,21 @@ module Homebrew
end end
private :spec private :spec
def resolve_keg(name) def resolve_kegs(name)
raise UsageError if name.blank? raise UsageError if name.blank?
require "keg" require "keg"
rack = Formulary.to_rack(name.downcase) rack = Formulary.to_rack(name.downcase)
dirs = rack.directory? ? rack.subdirs : [] kegs = rack.directory? ? rack.subdirs.map { |d| Keg.new(d) } : []
raise NoSuchKegError, rack.basename if dirs.empty? raise NoSuchKegError, rack.basename if kegs.none?
[rack, kegs]
end
def resolve_keg(name)
rack, kegs = resolve_kegs(name)
linked_keg_ref = HOMEBREW_LINKED_KEGS/rack.basename linked_keg_ref = HOMEBREW_LINKED_KEGS/rack.basename
opt_prefix = HOMEBREW_PREFIX/"opt/#{rack.basename}" opt_prefix = HOMEBREW_PREFIX/"opt/#{rack.basename}"
@ -275,7 +281,7 @@ module Homebrew
begin begin
return Keg.new(opt_prefix.resolved_path) if opt_prefix.symlink? && opt_prefix.directory? return Keg.new(opt_prefix.resolved_path) if opt_prefix.symlink? && opt_prefix.directory?
return Keg.new(linked_keg_ref.resolved_path) if linked_keg_ref.symlink? && linked_keg_ref.directory? return Keg.new(linked_keg_ref.resolved_path) if linked_keg_ref.symlink? && linked_keg_ref.directory?
return Keg.new(dirs.first) if dirs.length == 1 return kegs.first if kegs.length == 1
f = if name.include?("/") || File.exist?(name) f = if name.include?("/") || File.exist?(name)
Formulary.factory(name) Formulary.factory(name)