Merge pull request #7955 from MikeMcQuaid/formula-linked-keg

formula: look harder for a linked keg.
This commit is contained in:
Mike McQuaid 2020-07-09 15:36:37 +01:00 committed by GitHub
commit a3c89ff93b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -495,6 +495,10 @@ class Formula
# The link status symlink directory for this {Formula}. # The link status symlink directory for this {Formula}.
# You probably want {#opt_prefix} instead. # You probably want {#opt_prefix} instead.
def linked_keg def linked_keg
linked_keg = possible_names.map { |name| HOMEBREW_LINKED_KEGS/name }
.find(&:directory?)
return linked_keg if linked_keg.present?
HOMEBREW_LINKED_KEGS/name HOMEBREW_LINKED_KEGS/name
end end
@ -598,16 +602,10 @@ class Formula
# All currently installed prefix directories. # All currently installed prefix directories.
# @private # @private
def installed_prefixes def installed_prefixes
prefixes = rack.directory? ? rack.subdirs : [] possible_names.map { |name| HOMEBREW_CELLAR/name }
.select(&:directory?)
prefixes += (aliases + Array(oldname)).flat_map do |alias_name| .flat_map(&:subdirs)
rack_alias = HOMEBREW_CELLAR/alias_name .sort_by(&:basename)
next unless rack_alias.directory?
rack_alias.subdirs
end.compact
prefixes.sort_by(&:basename)
end end
# All currently installed kegs. # All currently installed kegs.
@ -1128,7 +1126,7 @@ class Formula
return false # this keg belongs to another formula return false # this keg belongs to another formula
else else
# this keg belongs to another unrelated formula # this keg belongs to another unrelated formula
return false unless (Array(f.aliases) + Array(f.oldname)).include?(keg.name) return false unless f.possible_names.include?(keg.name)
end end
end end
to_check = path.relative_path_from(HOMEBREW_PREFIX).to_s to_check = path.relative_path_from(HOMEBREW_PREFIX).to_s
@ -1358,6 +1356,11 @@ class Formula
name <=> other.name name <=> other.name
end end
# @private
def possible_names
[name, oldname, *aliases].compact
end
def to_s def to_s
name name
end end