diff --git a/cmd/brewer-tap-content-info.rb b/cmd/brewer-tap-content-info.rb index 5a31f5f..b45c645 100755 --- a/cmd/brewer-tap-content-info.rb +++ b/cmd/brewer-tap-content-info.rb @@ -4,54 +4,52 @@ require "formula" require "json" module Homebrew - module_function - - def brewer_tap_content_info_args - Homebrew::CLI::Parser.new do - description <<~EOS - Do something. Place a description here. - EOS - flag "--json", - description: "Print a JSON representation. Currently the default value for is `v1` for " \ - ". For and use `v2`. See the docs for examples of using the " \ - "JSON output: " - switch "--formula", "--formulae", - description: "Treat all named arguments as formulae." - switch "--cask", "--casks", - description: "Treat all named arguments as casks." - conflicts "--formula", "--cask" - - named_args [:tap] - end - end - - def brewer_tap_content_info - args = brewer_tap_content_info_args.parse - - formulae = [] - casks = [] - - Tap.each do |tap| - next if ["homebrew/core", "homebrew/cask"].include?(tap.name) - - unless args.cask? - tap.formula_files.each do |formula_file| - formulae << Formulary.factory(formula_file) - end + module Cmd + class BrewerTapContentInfo < AbstractCommand + cmd_args do + description <<~EOS + Do something. Place a description here. + EOS + flag "--json", + description: "Print a JSON representation. Currently the default value for is `v1` for " \ + ". For and use `v2`. See the docs for examples of using the " \ + "JSON output: " + switch "--formula", "--formulae", + description: "Treat all named arguments as formulae." + switch "--cask", "--casks", + description: "Treat all named arguments as casks." + conflicts "--formula", "--cask" + + named_args [:tap] end - unless args.formula? - tap.cask_files.each do |cask_file| - casks << Cask::CaskLoader::FromPathLoader.new(cask_file).load(config: nil) + def run + formulae = [] + casks = [] + + Tap.each do |tap| + next if ["homebrew/core", "homebrew/cask"].include?(tap.name) + + unless args.cask? + tap.formula_files.each do |formula_file| + formulae << Formulary.factory(formula_file) + end + end + + unless args.formula? + tap.cask_files.each do |cask_file| + casks << Cask::CaskLoader::FromPathLoader.new(cask_file).load(config: nil) + end + end end + + json = { + "formulae": formulae.map(&:to_hash), + "casks": casks.map(&:to_h) + } + + puts JSON.pretty_generate(json) end end - - json = { - "formulae": formulae.map(&:to_hash), - "casks": casks.map(&:to_h) - } - - puts JSON.pretty_generate(json) end end