test-bot: handle conflicted formulas and unlinked dependencies
these changes are primarily needed for php tap pull requests, as they usally contain multiple formulas depend on conflicting php versions: - unlink any conflicted formulas - link any dependencies that are installed and not linked Closes Homebrew/homebrew#41602. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
parent
5db82b46b1
commit
653053f184
@ -428,9 +428,32 @@ module Homebrew
|
||||
return
|
||||
end
|
||||
|
||||
conflicts = formula.conflicts
|
||||
formula.recursive_dependencies.each do |dependency|
|
||||
conflicts += dependency.to_formula.conflicts
|
||||
end
|
||||
|
||||
conflicts.each do |conflict|
|
||||
confict_formula = Formulary.factory(conflict.name)
|
||||
|
||||
if confict_formula.installed? && confict_formula.linked_keg.exist?
|
||||
test "brew", "unlink", "--force", conflict.name
|
||||
end
|
||||
end
|
||||
|
||||
installed = Utils.popen_read("brew", "list").split("\n")
|
||||
dependencies = Utils.popen_read("brew", "deps", "--skip-optional",
|
||||
canonical_formula_name).split("\n")
|
||||
|
||||
(installed & dependencies).each do |installed_dependency|
|
||||
installed_dependency_formula = Formulary.factory(installed_dependency)
|
||||
if installed_dependency_formula.installed? &&
|
||||
!installed_dependency_formula.keg_only? &&
|
||||
!installed_dependency_formula.linked_keg.exist?
|
||||
test "brew", "link", installed_dependency
|
||||
end
|
||||
end
|
||||
|
||||
dependencies -= installed
|
||||
unchanged_dependencies = dependencies - @formulae
|
||||
changed_dependences = dependencies - unchanged_dependencies
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user