Fix keg re-linking logic for failed upgrades

This commit is contained in:
Connor Mann 2021-06-14 11:31:55 -04:00
parent 48641f3a3a
commit 4bbfe351e2
No known key found for this signature in database
GPG Key ID: 5886083015754F6F

View File

@ -255,7 +255,7 @@ module Homebrew
oh1 <<~EOS
#{f.name} #{f.linked_version} is installed and outdated
Upgrading #{Formatted.identifier(f.name)} #{version_upgrade}
Upgrading #{Formatter.identifier(f.name)} #{version_upgrade}
EOS
outdated_kegs = outdated_formulae.map(&:linked_keg).select(&:directory?).map { |k| Keg.new(k.resolved_path) }
linked_kegs = outdated_kegs.select(&:linked?)
@ -295,7 +295,11 @@ module Homebrew
ofail e.message
ensure
# Re-link kegs if upgrade fails
linked_kegs.each(&:link) unless f.latest_version_installed?
begin
linked_kegs.each(&:link) unless f.latest_version_installed?
rescue
nil
end
end
end
end