diff --git a/Library/Homebrew/cli/args.rb b/Library/Homebrew/cli/args.rb index ac5fd1875b..af4920b1ce 100644 --- a/Library/Homebrew/cli/args.rb +++ b/Library/Homebrew/cli/args.rb @@ -38,6 +38,7 @@ module Homebrew @resolved_formulae = nil @formulae_paths = nil @casks = nil + @formulae_and_casks = nil @kegs = nil self[:named_args] = named_args @@ -107,6 +108,23 @@ module Homebrew .freeze 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 require "keg" require "formula"