diff options
| author | Andy Blyler | 2015-07-11 14:41:27 -0400 |
|---|---|---|
| committer | Mike McQuaid | 2015-07-20 08:34:53 +0100 |
| commit | 653053f184f1acb79e08930a7031338d8af7678e (patch) | |
| tree | 134f250485ea29d2eceb865d4e2bc63b311bfa65 /Library | |
| parent | 5db82b46b18b33d77ede589431abe2c0ec2fd65c (diff) | |
| download | brew-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')
| -rw-r--r-- | Library/Homebrew/cmd/test-bot.rb | 23 |
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 |
