From 653053f184f1acb79e08930a7031338d8af7678e Mon Sep 17 00:00:00 2001 From: Andy Blyler Date: Sat, 11 Jul 2015 14:41:27 -0400 Subject: 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 --- Library/Homebrew/cmd/test-bot.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'Library') diff --git a/Library/Homebrew/cmd/test-bot.rb b/Library/Homebrew/cmd/test-bot.rb index 0418b7dec..a346eeb7d 100644 --- a/Library/Homebrew/cmd/test-bot.rb +++ b/Library/Homebrew/cmd/test-bot.rb @@ -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 -- cgit v1.2.3