dev-cmd/livecheck: use safe navigation on #sort_by

This commit is contained in:
Sam Ford 2020-12-18 10:47:09 -05:00
parent 24046c3182
commit e604cf742b
No known key found for this signature in database
GPG Key ID: 95209E46C7FFDEFE

View File

@ -60,44 +60,45 @@ module Homebrew
puts ENV["HOMEBREW_LIVECHECK_WATCHLIST"] if ENV["HOMEBREW_LIVECHECK_WATCHLIST"].present? puts ENV["HOMEBREW_LIVECHECK_WATCHLIST"] if ENV["HOMEBREW_LIVECHECK_WATCHLIST"].present?
end end
formulae_and_casks_to_check = if args.tap formulae_and_casks_to_check =
tap = Tap.fetch(args.tap) if args.tap
formulae = args.cask? ? [] : tap.formula_files.map { |path| Formulary.factory(path) } tap = Tap.fetch(args.tap)
casks = args.formula? ? [] : tap.cask_files.map { |path| Cask::CaskLoader.load(path) } formulae = args.cask? ? [] : tap.formula_files.map { |path| Formulary.factory(path) }
formulae + casks casks = args.formula? ? [] : tap.cask_files.map { |path| Cask::CaskLoader.load(path) }
elsif args.installed? formulae + casks
formulae = args.cask? ? [] : Formula.installed elsif args.installed?
casks = args.formula? ? [] : Cask::Caskroom.casks formulae = args.cask? ? [] : Formula.installed
formulae + casks casks = args.formula? ? [] : Cask::Caskroom.casks
elsif args.all? formulae + casks
formulae = args.cask? ? [] : Formula.to_a elsif args.all?
casks = args.formula? ? [] : Cask::Cask.to_a formulae = args.cask? ? [] : Formula.to_a
formulae + casks casks = args.formula? ? [] : Cask::Cask.to_a
elsif args.named.present? formulae + casks
if args.formula? elsif args.named.present?
args.named.to_formulae if args.formula?
elsif args.cask? args.named.to_formulae
args.named.to_casks elsif args.cask?
else args.named.to_casks
args.named.to_formulae_and_casks else
end args.named.to_formulae_and_casks
elsif File.exist?(WATCHLIST_PATH)
begin
names = Pathname.new(WATCHLIST_PATH).read.lines
.reject { |line| line.start_with?("#") || line.blank? }
.map(&:strip)
named_args = T.unsafe(CLI::NamedArgs).new(*names)
named_args.to_formulae_and_casks.reject do |formula_or_cask|
(args.formula? && !formula_or_cask.is_a?(Formula)) ||
(args.cask? && !formula_or_cask.is_a?(Cask::Cask))
end end
rescue Errno::ENOENT => e elsif File.exist?(WATCHLIST_PATH)
onoe e begin
names = Pathname.new(WATCHLIST_PATH).read.lines
.reject { |line| line.start_with?("#") || line.blank? }
.map(&:strip)
named_args = T.unsafe(CLI::NamedArgs).new(*names)
named_args.to_formulae_and_casks.reject do |formula_or_cask|
(args.formula? && !formula_or_cask.is_a?(Formula)) ||
(args.cask? && !formula_or_cask.is_a?(Cask::Cask))
end
rescue Errno::ENOENT => e
onoe e
end
end&.sort_by do |formula_or_cask|
formula_or_cask.respond_to?(:token) ? formula_or_cask.token : formula_or_cask.name
end end
end.sort_by do |formula_or_cask|
formula_or_cask.respond_to?(:token) ? formula_or_cask.token : formula_or_cask.name
end
raise UsageError, "No formulae or casks to check." if formulae_and_casks_to_check.blank? raise UsageError, "No formulae or casks to check." if formulae_and_casks_to_check.blank?