aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorAndy Blyler2015-07-11 14:41:27 -0400
committerMike McQuaid2015-07-20 08:34:53 +0100
commit653053f184f1acb79e08930a7031338d8af7678e (patch)
tree134f250485ea29d2eceb865d4e2bc63b311bfa65 /Library/Homebrew/cmd
parent5db82b46b18b33d77ede589431abe2c0ec2fd65c (diff)
downloadbrew-653053f184f1acb79e08930a7031338d8af7678e.tar.bz2
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>
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/test-bot.rb23
1 files changed, 23 insertions, 0 deletions
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