Merge pull request #10935 from reitermarkus/uninstall-force
Fix `uninstall --force` for casks and still ignore non-existent formulae/casks.
This commit is contained in:
commit
a96e364b41
@ -57,7 +57,7 @@ module Homebrew
|
|||||||
# Need to rescue before `*UnavailableError` (superclass of this)
|
# Need to rescue before `*UnavailableError` (superclass of this)
|
||||||
# The formula/cask was found, but there's a problem with its implementation
|
# The formula/cask was found, but there's a problem with its implementation
|
||||||
raise
|
raise
|
||||||
rescue NoSuchKegError, FormulaUnavailableError, Cask::CaskUnavailableError
|
rescue NoSuchKegError, FormulaUnavailableError, Cask::CaskUnavailableError, FormulaOrCaskUnavailableError
|
||||||
ignore_unavailable ? [] : raise
|
ignore_unavailable ? [] : raise
|
||||||
end.uniq.freeze
|
end.uniq.freeze
|
||||||
end
|
end
|
||||||
@ -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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user