mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Merge pull request #18638 from Homebrew/keg_relocate-type-fix
keg_relocate: fix error when dylib_id doesn't need changing
This commit is contained in:
commit
b34e6ee20e
@ -28,7 +28,7 @@ module OS
|
||||
|
||||
if file.dylib?
|
||||
id = relocated_name_for(file.dylib_id, relocation)
|
||||
modified = change_dylib_id(id, file)
|
||||
modified = change_dylib_id(id, file) if id
|
||||
needs_codesigning ||= modified
|
||||
end
|
||||
|
||||
@ -151,6 +151,7 @@ module OS
|
||||
(opt_record/relative_dirname/basename).to_s
|
||||
end
|
||||
|
||||
sig { params(old_name: String, relocation: ::Keg::Relocation).returns(T.nilable(String)) }
|
||||
def relocated_name_for(old_name, relocation)
|
||||
old_prefix, new_prefix = relocation.replacement_pair_for(:prefix)
|
||||
old_cellar, new_cellar = relocation.replacement_pair_for(:cellar)
|
||||
|
@ -15,7 +15,7 @@ class Keg
|
||||
RELOCATABLE_PATH_REGEX_PREFIX = /(?:(?<=-F|-I|-L|-isystem)|(?<![a-zA-Z0-9]))/
|
||||
|
||||
def initialize
|
||||
@replacement_map = {}
|
||||
@replacement_map = T.let({}, T::Hash[Symbol, [T.any(String, Regexp), String]])
|
||||
end
|
||||
|
||||
def freeze
|
||||
@ -29,7 +29,7 @@ class Keg
|
||||
@replacement_map[key] = [old_value, new_value]
|
||||
end
|
||||
|
||||
sig { params(key: Symbol).returns(T::Array[T.any(String, Regexp)]) }
|
||||
sig { params(key: Symbol).returns([T.any(String, Regexp), String]) }
|
||||
def replacement_pair_for(key)
|
||||
@replacement_map.fetch(key)
|
||||
end
|
||||
@ -44,7 +44,7 @@ class Keg
|
||||
|
||||
any_changed = T.let(nil, T.nilable(String))
|
||||
sorted_keys.each do |key|
|
||||
changed = text.gsub!(key, replacements[key])
|
||||
changed = text.gsub!(key, replacements.fetch(key))
|
||||
any_changed ||= changed
|
||||
end
|
||||
!any_changed.nil?
|
||||
|
Loading…
x
Reference in New Issue
Block a user