FormulaInstaller: link tmp kegs during rescue
In #6807, the FormulaInstaller began to rescue from FormulaInstallationAlreadyAttemptedError but there is the potential for tmp kegs to remain unlinked in the cellar. I've merged the rescue statements so they both re-link tmp kegs, but it doesn't raise for FormulaInstallationAlreadyAttemptedError.
This commit is contained in:
parent
252bdc2f26
commit
096a5bdfb4
@ -598,16 +598,16 @@ class FormulaInstaller
|
||||
oh1 "Installing #{formula.full_name} dependency: #{Formatter.identifier(dep.name)}"
|
||||
fi.install
|
||||
fi.finish
|
||||
rescue FormulaInstallationAlreadyAttemptedError
|
||||
# We already attempted to install f as part of the dependency tree of
|
||||
# another formula. In that case, don't generate an error, just move on.
|
||||
nil
|
||||
rescue Exception # rubocop:disable Lint/RescueException
|
||||
rescue Exception => e # rubocop:disable Lint/RescueException
|
||||
ignore_interrupts do
|
||||
tmp_keg.rename(installed_keg) if tmp_keg && !installed_keg.directory?
|
||||
linked_keg.link if keg_was_linked
|
||||
end
|
||||
raise
|
||||
raise unless e.is_a? FormulaInstallationAlreadyAttemptedError
|
||||
|
||||
# We already attempted to install f as part of another formula's
|
||||
# dependency tree. In that case, don't generate an error, just move on.
|
||||
nil
|
||||
else
|
||||
ignore_interrupts { tmp_keg.rmtree if tmp_keg&.directory? }
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user