Disambiguate formulae/casks from different taps
This commit is contained in:
parent
6efb37206f
commit
ab0e427d3e
@ -16,6 +16,8 @@ module Homebrew
|
|||||||
Display out-of-date brew formulae and the latest version available.
|
Display out-of-date brew formulae and the latest version available.
|
||||||
Also displays whether a pull request has been opened with the URL.
|
Also displays whether a pull request has been opened with the URL.
|
||||||
EOS
|
EOS
|
||||||
|
switch "--full-name",
|
||||||
|
description: "Print formulae/casks with fully-qualified names."
|
||||||
switch "--no-pull-requests",
|
switch "--no-pull-requests",
|
||||||
description: "Do not retrieve pull requests from GitHub."
|
description: "Do not retrieve pull requests from GitHub."
|
||||||
switch "--formula", "--formulae",
|
switch "--formula", "--formulae",
|
||||||
@ -63,10 +65,19 @@ module Homebrew
|
|||||||
.select { |item| item.is_a?(Cask::Cask) }
|
.select { |item| item.is_a?(Cask::Cask) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
ambiguous_names = []
|
||||||
|
unless args.full_name?
|
||||||
|
ambiguous_names = (formulae_and_casks - ambiguous_casks)
|
||||||
|
.group_by { |item| Livecheck.formula_or_cask_name(item) }
|
||||||
|
.select { |_name, items| items.length > 1 }
|
||||||
|
.values.flatten
|
||||||
|
end
|
||||||
|
|
||||||
formulae_and_casks.each_with_index do |formula_or_cask, i|
|
formulae_and_casks.each_with_index do |formula_or_cask, i|
|
||||||
puts if i.positive?
|
puts if i.positive?
|
||||||
|
|
||||||
name = Livecheck.formula_or_cask_name(formula_or_cask)
|
use_full_name = args.full_name? || ambiguous_names.include?(formula_or_cask)
|
||||||
|
name = Livecheck.formula_or_cask_name(formula_or_cask, full_name: use_full_name)
|
||||||
repository = if formula_or_cask.is_a?(Formula)
|
repository = if formula_or_cask.is_a?(Formula)
|
||||||
if formula_or_cask.head_only?
|
if formula_or_cask.head_only?
|
||||||
ohai name
|
ohai name
|
||||||
|
|||||||
@ -112,6 +112,14 @@ module Homebrew
|
|||||||
.select { |item| item.is_a?(Cask::Cask) }
|
.select { |item| item.is_a?(Cask::Cask) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
ambiguous_names = []
|
||||||
|
unless full_name
|
||||||
|
ambiguous_names = (formulae_and_casks_to_check - ambiguous_casks)
|
||||||
|
.group_by { |item| formula_or_cask_name(item) }
|
||||||
|
.select { |_name, items| items.length > 1 }
|
||||||
|
.values.flatten
|
||||||
|
end
|
||||||
|
|
||||||
has_a_newer_upstream_version = T.let(false, T::Boolean)
|
has_a_newer_upstream_version = T.let(false, T::Boolean)
|
||||||
|
|
||||||
if json && !quiet && $stderr.tty?
|
if json && !quiet && $stderr.tty?
|
||||||
@ -133,7 +141,9 @@ module Homebrew
|
|||||||
formulae_checked = formulae_and_casks_to_check.map.with_index do |formula_or_cask, i|
|
formulae_checked = formulae_and_casks_to_check.map.with_index do |formula_or_cask, i|
|
||||||
formula = formula_or_cask if formula_or_cask.is_a?(Formula)
|
formula = formula_or_cask if formula_or_cask.is_a?(Formula)
|
||||||
cask = formula_or_cask if formula_or_cask.is_a?(Cask::Cask)
|
cask = formula_or_cask if formula_or_cask.is_a?(Cask::Cask)
|
||||||
name = formula_or_cask_name(formula_or_cask, full_name: full_name)
|
|
||||||
|
use_full_name = full_name || ambiguous_names.include?(formula_or_cask)
|
||||||
|
name = formula_or_cask_name(formula_or_cask, full_name: use_full_name)
|
||||||
|
|
||||||
if debug && i.positive?
|
if debug && i.positive?
|
||||||
puts <<~EOS
|
puts <<~EOS
|
||||||
@ -145,7 +155,7 @@ module Homebrew
|
|||||||
puts
|
puts
|
||||||
end
|
end
|
||||||
|
|
||||||
skip_info = SkipConditions.skip_information(formula_or_cask, full_name: full_name, verbose: verbose)
|
skip_info = SkipConditions.skip_information(formula_or_cask, full_name: use_full_name, verbose: verbose)
|
||||||
if skip_info.present?
|
if skip_info.present?
|
||||||
next skip_info if json
|
next skip_info if json
|
||||||
|
|
||||||
@ -177,7 +187,7 @@ module Homebrew
|
|||||||
else
|
else
|
||||||
version_info = latest_version(
|
version_info = latest_version(
|
||||||
formula_or_cask,
|
formula_or_cask,
|
||||||
json: json, full_name: full_name, verbose: verbose, debug: debug,
|
json: json, full_name: use_full_name, verbose: verbose, debug: debug,
|
||||||
)
|
)
|
||||||
version_info[:latest] if version_info.present?
|
version_info[:latest] if version_info.present?
|
||||||
end
|
end
|
||||||
@ -188,7 +198,7 @@ module Homebrew
|
|||||||
|
|
||||||
next version_info if version_info.is_a?(Hash) && version_info[:status] && version_info[:messages]
|
next version_info if version_info.is_a?(Hash) && version_info[:status] && version_info[:messages]
|
||||||
|
|
||||||
next status_hash(formula_or_cask, "error", [no_versions_msg], full_name: full_name, verbose: verbose)
|
next status_hash(formula_or_cask, "error", [no_versions_msg], full_name: use_full_name, verbose: verbose)
|
||||||
end
|
end
|
||||||
|
|
||||||
if (m = latest.to_s.match(/(.*)-release$/)) && !current.to_s.match(/.*-release$/)
|
if (m = latest.to_s.match(/(.*)-release$/)) && !current.to_s.match(/.*-release$/)
|
||||||
@ -237,12 +247,13 @@ module Homebrew
|
|||||||
nil
|
nil
|
||||||
rescue => e
|
rescue => e
|
||||||
Homebrew.failed = true
|
Homebrew.failed = true
|
||||||
|
use_full_name = full_name || ambiguous_names.include?(formula_or_cask)
|
||||||
|
|
||||||
if json
|
if json
|
||||||
progress&.increment
|
progress&.increment
|
||||||
status_hash(formula_or_cask, "error", [e.to_s], full_name: full_name, verbose: verbose)
|
status_hash(formula_or_cask, "error", [e.to_s], full_name: use_full_name, verbose: verbose)
|
||||||
elsif !quiet
|
elsif !quiet
|
||||||
name = formula_or_cask_name(formula_or_cask, full_name: full_name)
|
name = formula_or_cask_name(formula_or_cask, full_name: use_full_name)
|
||||||
name += " (cask)" if ambiguous_casks.include?(formula_or_cask)
|
name += " (cask)" if ambiguous_casks.include?(formula_or_cask)
|
||||||
|
|
||||||
onoe "#{Tty.blue}#{name}#{Tty.reset}: #{e}"
|
onoe "#{Tty.blue}#{name}#{Tty.reset}: #{e}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user