class ChefCLI::CookbookSourceConflict

def compute_message

def compute_message
  conflicting_cookbook_sets = cookbook_sources.combination(2).map do |source_a, source_b|
    overlapping_cookbooks = conflicting_cookbooks.select do |cookbook_name|
      source_a.universe_graph.key?(cookbook_name) && source_b.universe_graph.key?(cookbook_name)
    end
    "Source #{source_a.desc} and #{source_b.desc} contain conflicting cookbooks:\n" +
      overlapping_cookbooks.sort.map { |c| "- #{c}" }.join("\n") + "\n\n" +
      resolution_message(overlapping_cookbooks)
  end
  conflicting_cookbook_sets.join("\n")
end