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
puts formula.cached_download
end
rescue FormulaUnavailableError
rescue FormulaUnavailableError => fe
begin
cask = Cask::CaskLoader.load name
puts "cask: #{Cask::Cmd::Cache.cached_location(cask)}"
rescue Cask::CaskUnavailableError
ofail "No available formula or cask with the name \"#{name}\""
rescue Cask::CaskUnavailableError => ce
odie "No available formula or cask with the name \"#{name}\"\n" \
"#{fe.message}\n" \
"#{ce.message}\n"
end
end
end

View File

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