rework error handling to show the error for both formula and cask loading

This commit is contained in:
William Ma 2020-06-22 15:39:15 -04:00
parent bd2f5c3b32
commit 2a11bcf501
2 changed files with 15 additions and 13 deletions

View File

@ -38,12 +38,14 @@ module Homebrew
else else
puts formula.cached_download puts formula.cached_download
end end
rescue FormulaUnavailableError rescue FormulaUnavailableError => fe
begin begin
cask = Cask::CaskLoader.load name cask = Cask::CaskLoader.load name
puts "cask: #{Cask::Cmd::Cache.cached_location(cask)}" puts "cask: #{Cask::Cmd::Cache.cached_location(cask)}"
rescue Cask::CaskUnavailableError rescue Cask::CaskUnavailableError => ce
ofail "No available formula or cask with the name \"#{name}\"" odie "No available formula or cask with the name \"#{name}\"\n" \
"#{fe.message}\n" \
"#{ce.message}\n"
end end
end end
end end

View File

@ -25,20 +25,20 @@ module Homebrew
if args.no_named? if args.no_named?
exec_browser HOMEBREW_WWW exec_browser HOMEBREW_WWW
else else
homepages = args.named.flat_map do |ref| homepages = args.named.map do |ref|
[Formulary.factory(ref).homepage] Formulary.factory(ref).homepage
rescue FormulaUnavailableError => e rescue FormulaUnavailableError => fe
puts e.message
begin begin
cask = Cask::CaskLoader.load(ref) cask = Cask::CaskLoader.load(ref)
puts "Found a cask with ref \"#{ref}\" instead." puts "Formula \"#{ref}\" not found. Found a cask instead."
[cask.homepage] cask.homepage
rescue Cask::CaskUnavailableError => e rescue Cask::CaskUnavailableError => ce
puts e.message odie "No available formula or cask with the name \"#{name}\"\n" \
[] "#{fe.message}\n" \
"#{ce.message}\n"
end end
end end
exec_browser(*homepages) unless homepages.empty? exec_browser(*homepages)
end end
end end
end end