cache: alert user when no formula or cask matches the argument

This commit is contained in:
William Ma 2020-06-19 14:00:26 -04:00
parent 46d344c0d1
commit 9b1d58c53c
2 changed files with 11 additions and 24 deletions

View File

@ -108,23 +108,6 @@ module Homebrew
.freeze .freeze
end end
def formulae_and_casks
require "cask/cask_loader"
require "cask/exceptions"
@formulae_and_casks ||= downcased_unique_named.map do |name|
begin
Formulary.factory(name, spec)
rescue FormulaUnavailableError => e
begin
Cask::CaskLoader.load(name)
rescue Cask::CaskUnavailableError
raise e
end
end
end.uniq.freeze
end
def kegs def kegs
require "keg" require "keg"
require "formula" require "formula"

View File

@ -3,6 +3,7 @@
require "fetch" require "fetch"
require "cli/parser" require "cli/parser"
require "cask/cmd" require "cask/cmd"
require "cask/cask_loader"
module Homebrew module Homebrew
module_function module_function
@ -30,18 +31,21 @@ module Homebrew
if args.no_named? if args.no_named?
puts HOMEBREW_CACHE puts HOMEBREW_CACHE
else else
args.formulae_and_casks.each do |formula_or_cask| args.named.each do |name|
case formula_or_cask begin
when Formula formula = Formulary.factory name
formula = formula_or_cask
if Fetch.fetch_bottle?(formula) if Fetch.fetch_bottle?(formula)
puts formula.bottle.cached_download puts formula.bottle.cached_download
else else
puts formula.cached_download puts formula.cached_download
end end
when Cask::Cask rescue FormulaUnavailableError => e
cask = formula_or_cask begin
puts "cask: #{Cask::Cmd::Cache.cached_location(cask)}" 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}\""
end
end end
end end
end end