# frozen_string_literal: true require "formula" require "options" require "cli/parser" module Homebrew module_function def options_args Homebrew::CLI::Parser.new do usage_banner <<~EOS `options` [] [] Show install options specific to . EOS switch "--compact", description: "Show all options on a single line separated by spaces." switch "--installed", description: "Show options for formulae that are currently installed." switch "--all", description: "Show options for all available formulae." switch :debug conflicts "--installed", "--all" end end def options options_args.parse if args.all? puts_options Formula.to_a.sort elsif args.installed? puts_options Formula.installed.sort elsif args.no_named? raise FormulaUnspecifiedError else puts_options args.formulae end end def puts_options(formulae) formulae.each do |f| next if f.options.empty? if args.compact? puts f.options.as_flags.sort * " " else puts f.full_name if formulae.length > 1 dump_options_for_formula f puts end end end end