Class: Homebrew::CLI::Args Private
Overview
This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.
This file contains global args as defined in Homebrew::CLI::Parser.global_options
Command-specific args are defined in the commands themselves, with type signatures
generated by the Tapioca::Compilers::Args compiler.
Direct Known Subclasses
Homebrew::Cmd::Alias::Args, Homebrew::Cmd::Analytics::Args, Homebrew::Cmd::AsConsoleUser::Args, Homebrew::Cmd::Autoremove::Args, Homebrew::Cmd::Bundle::Args, Homebrew::Cmd::Cache::Args, Homebrew::Cmd::Caskroom::Args, Homebrew::Cmd::Casks::Args, Homebrew::Cmd::Cellar::Args, Homebrew::Cmd::CleanupCmd::Args, Homebrew::Cmd::Command::Args, Homebrew::Cmd::CommandNotFoundInit::Args, Homebrew::Cmd::CommandsCmd::Args, Homebrew::Cmd::CompletionsCmd::Args, Homebrew::Cmd::Config::Args, Homebrew::Cmd::Deps::Args, Homebrew::Cmd::Desc::Args, Homebrew::Cmd::Developer::Args, Homebrew::Cmd::Docs::Args, Homebrew::Cmd::Doctor::Args, Homebrew::Cmd::Env::Args, Homebrew::Cmd::Exec::Args, Homebrew::Cmd::FetchCmd::Args, Homebrew::Cmd::Formulae::Args, Homebrew::Cmd::GistLogs::Args, Homebrew::Cmd::HelpCmd::Args, Homebrew::Cmd::Home::Args, Homebrew::Cmd::Info::Args, Homebrew::Cmd::InstallCmd::Args, Homebrew::Cmd::Leaves::Args, Homebrew::Cmd::Link::Args, Homebrew::Cmd::List::Args, Homebrew::Cmd::Log::Args, Homebrew::Cmd::McpServerCmd::Args, Homebrew::Cmd::Migrate::Args, Homebrew::Cmd::Missing::Args, Homebrew::Cmd::NodenvSync::Args, Homebrew::Cmd::OptionsCmd::Args, Homebrew::Cmd::Outdated::Args, Homebrew::Cmd::Pin::Args, Homebrew::Cmd::Postinstall::Args, Homebrew::Cmd::Prefix::Args, Homebrew::Cmd::PyenvSync::Args, Homebrew::Cmd::RbenvSync::Args, Homebrew::Cmd::ReadallCmd::Args, Homebrew::Cmd::Reinstall::Args, Homebrew::Cmd::Repository::Args, Homebrew::Cmd::SandboxExec::Args, Homebrew::Cmd::SearchCmd::Args, Homebrew::Cmd::Services::Args, Homebrew::Cmd::SetupRuby::Args, Homebrew::Cmd::Shellenv::Args, Homebrew::Cmd::Source::Args, Homebrew::Cmd::TabCmd::Args, Homebrew::Cmd::TapCmd::Args, Homebrew::Cmd::TapInfo::Args, Homebrew::Cmd::Taps::Args, Homebrew::Cmd::TestBotCmd::Args, Homebrew::Cmd::Trust::Args, Homebrew::Cmd::Unalias::Args, Homebrew::Cmd::UninstallCmd::Args, Homebrew::Cmd::UnlinkCmd::Args, Homebrew::Cmd::Unpin::Args, Homebrew::Cmd::Untap::Args, Homebrew::Cmd::Untrust::Args, Homebrew::Cmd::Update::Args, Homebrew::Cmd::UpdateIfNeeded::Args, Homebrew::Cmd::UpdateReport::Args, Homebrew::Cmd::UpdateReset::Args, Homebrew::Cmd::UpgradeCmd::Args, Homebrew::Cmd::Uses::Args, Homebrew::Cmd::VendorInstall::Args, Homebrew::Cmd::Version::Args, Homebrew::Cmd::VersionInstall::Args, Homebrew::Cmd::Vulns::Args, Homebrew::Cmd::WhichFormula::Args, DevCmd::AdvisoryMatch::Args, DevCmd::Audit::Args, DevCmd::Benchmark::Args, DevCmd::Bottle::Args, DevCmd::Bump::Args, DevCmd::BumpCaskPr::Args, DevCmd::BumpCompatibilityVersion::Args, DevCmd::BumpFormulaPr::Args, DevCmd::BumpPythonResourcesPr::Args, DevCmd::BumpRevision::Args, DevCmd::BumpUnversionedCasks::Args, DevCmd::CaskCi::Args, DevCmd::Cat::Args, DevCmd::Contributions::Args, DevCmd::Create::Args, DevCmd::Debugger::Args, DevCmd::DetermineTestRunners::Args, DevCmd::DispatchBuildBottle::Args, DevCmd::Edit::Args, DevCmd::Extract::Args, DevCmd::FindAppcast::Args, DevCmd::FormulaAnalytics::Args, DevCmd::FormulaCmd::Args, DevCmd::FormulaPythonResources::Args, DevCmd::GenerateAdvisoriesApi::Args, DevCmd::GenerateAnalyticsApi::Args, DevCmd::GenerateBottleCiMatrix::Args, DevCmd::GenerateCaskApi::Args, DevCmd::GenerateCaskCiMatrix::Args, DevCmd::GenerateCaskToken::Args, DevCmd::GenerateFormulaApi::Args, DevCmd::GenerateInternalApi::Args, DevCmd::GenerateManCompletions::Args, DevCmd::GenerateVulnsAdvisories::Args, DevCmd::GenerateZap::Args, DevCmd::InstallBundlerGems::Args, DevCmd::Irb::Args, DevCmd::Lgtm::Args, DevCmd::Linkage::Args, DevCmd::LivecheckCmd::Args, DevCmd::PrAutomerge::Args, DevCmd::PrPublish::Args, DevCmd::PrPull::Args, DevCmd::PrUpload::Args, DevCmd::Prof::Args, DevCmd::Release::Args, DevCmd::Rubocop::Args, DevCmd::Ruby::Args, DevCmd::Rubydoc::Args, DevCmd::Sh::Args, DevCmd::StyleCmd::Args, DevCmd::TapNew::Args, DevCmd::Test::Args, DevCmd::Tests::Args, DevCmd::Typecheck::Args, DevCmd::Unbottled::Args, DevCmd::Unpack::Args, DevCmd::UpdateLicenseData::Args, DevCmd::UpdateMaintainers::Args, DevCmd::UpdatePerlResources::Args, DevCmd::UpdatePortableRuby::Args, DevCmd::UpdatePythonResources::Args, DevCmd::UpdateSponsors::Args, DevCmd::UpdateTest::Args, DevCmd::VendorGems::Args, DevCmd::Verify::Args, DevCmd::WhichUpdate::Args
Constant Summary collapse
- OptionsType =
This constant is part of a private API. This constant may only be used in the Homebrew/brew repository. Third parties should avoid using this constant if possible, as it may be removed or changed without warning.
Represents a processed option. The array elements are:
0: short option name (e.g. "-d") 1: long option name (e.g. "--debug") 2: option description (e.g. "Print debugging information") 3: whether the option is hidden T.type_alias { T::Array[[T.nilable(String), T.nilable(String), String, T::Boolean]] }
Instance Attribute Summary collapse
- #flags_only ⇒ Array<String> readonly private
- #options_only ⇒ Array<String> readonly private
- #remaining ⇒ Array<String> readonly private
Instance Method Summary collapse
- #build_from_source_formulae ⇒ Array<String> private
- #context ⇒ Context::ContextStruct private
- #debug? ⇒ Boolean private
- #freeze_named_args!(named_args, cask_options:, without_api:) ⇒ void private
- #freeze_processed_options!(processed_options) ⇒ void private
- #freeze_remaining_args!(remaining_args) ⇒ void private
- #help? ⇒ Boolean private
- #include_test_formulae ⇒ Array<String> private
- #initialize ⇒ void constructor private
- #named ⇒ NamedArgs private
- #no_named? ⇒ Boolean private
- #only_formula_or_cask ⇒ Symbol? private
- #os_arch_combinations ⇒ Array<Array<(Symbol, Symbol)>> private
- #quiet? ⇒ Boolean private
- #set_arg(name, value) ⇒ void private
- #tap(&_blk) ⇒ T.untyped private
- #value(name) ⇒ String? private
- #verbose? ⇒ Boolean private
Constructor Details
#initialize ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'cli/args.rb', line 18 def initialize require "cli/named_args" @cli_args = T.let(nil, T.nilable(T::Array[String])) @processed_options = T.let([], OptionsType) @options_only = T.let([], T::Array[String]) @flags_only = T.let([], T::Array[String]) @cask_options = T.let(false, T::Boolean) @table = T.let({}, T::Hash[Symbol, T.untyped]) # Can set these because they will be overwritten by freeze_named_args! # (whereas other values below will only be overwritten if passed). @named = T.let(NamedArgs.new(parent: self), NamedArgs) @remaining = T.let([], T::Array[String]) end |
Instance Attribute Details
#flags_only ⇒ Array<String> (readonly)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 16 17 |
# File 'cli/args.rb', line 15 def flags_only @flags_only end |
#options_only ⇒ Array<String> (readonly)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 16 17 |
# File 'cli/args.rb', line 15 def @options_only end |
#remaining ⇒ Array<String> (readonly)
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 16 17 |
# File 'cli/args.rb', line 15 def remaining @remaining end |
Instance Method Details
#build_from_source_formulae ⇒ Array<String>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
84 85 86 87 88 89 90 |
# File 'cli/args.rb', line 84 def build_from_source_formulae if @table[:build_from_source?] || @table[:HEAD?] || @table[:build_bottle?] named.to_formulae.map(&:full_name) else [] end end |
#context ⇒ Context::ContextStruct
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
111 112 113 |
# File 'cli/args.rb', line 111 def context Context::ContextStruct.new(debug: debug?, quiet: quiet?, verbose: verbose?) end |
#debug? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
9 |
# File 'cli/args.rbi', line 9 def debug?; end |
#freeze_named_args!(named_args, cask_options:, without_api:) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
38 39 40 41 42 43 44 45 46 47 48 |
# File 'cli/args.rb', line 38 def freeze_named_args!(named_args, cask_options:, without_api:) @named = NamedArgs.new( *named_args.freeze, cask_options:, flags: flags_only, force_bottle: @table[:force_bottle?] || false, override_spec: @table[:HEAD?] ? :head : nil, parent: self, without_api:, ) end |
#freeze_processed_options!(processed_options) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
63 64 65 66 67 68 69 70 71 72 |
# File 'cli/args.rb', line 63 def () # Reset cache values reliant on processed_options @cli_args = nil @processed_options += @processed_options.freeze @options_only = cli_args.select { it.start_with?("-") }.freeze @flags_only = cli_args.select { it.start_with?("--") }.freeze end |
#freeze_remaining_args!(remaining_args) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
35 |
# File 'cli/args.rb', line 35 def freeze_remaining_args!(remaining_args) = @remaining.replace(remaining_args).freeze |
#help? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
12 |
# File 'cli/args.rbi', line 12 def help?; end |
#include_test_formulae ⇒ Array<String>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
93 94 95 96 97 98 99 |
# File 'cli/args.rb', line 93 def include_test_formulae if @table[:include_test?] named.to_formulae.map(&:full_name) else [] end end |
#named ⇒ NamedArgs
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
75 76 77 78 |
# File 'cli/args.rb', line 75 def named require "formula" @named end |
#no_named? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
81 |
# File 'cli/args.rb', line 81 def no_named? = named.empty? |
#only_formula_or_cask ⇒ Symbol?
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
116 117 118 119 120 121 122 |
# File 'cli/args.rb', line 116 def only_formula_or_cask if @table[:formula?] && !@table[:cask?] :formula elsif @table[:cask?] && !@table[:formula?] :cask end end |
#os_arch_combinations ⇒ Array<Array<(Symbol, Symbol)>>
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'cli/args.rb', line 125 def os_arch_combinations # `--all-platforms` is equivalent to `--os=all --arch=all`. all_platforms = @table[:all_platforms?] os_sym = all_platforms ? :all : @table[:os]&.to_sym oses = case os_sym when nil [SimulateSystem.current_os] when :all OnSystem::ALL_OS_OPTIONS else [os_sym] end arch_sym = all_platforms ? :all : @table[:arch]&.to_sym arches = case arch_sym when nil [SimulateSystem.current_arch] when :all OnSystem::ARCH_OPTIONS else [arch_sym] end oses.product(arches) end |
#quiet? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
15 |
# File 'cli/args.rbi', line 15 def quiet?; end |
#set_arg(name, value) ⇒ void
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
This method returns an undefined value.
51 52 53 |
# File 'cli/args.rb', line 51 def set_arg(name, value) @table[name] = value end |
#tap(&_blk) ⇒ T.untyped
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
56 57 58 59 60 |
# File 'cli/args.rb', line 56 def tap(&_blk) return super if block_given? # Object#tap @table[:tap] end |
#value(name) ⇒ String?
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
102 103 104 105 106 107 108 |
# File 'cli/args.rb', line 102 def value(name) arg_prefix = "--#{name}=" flag_with_value = flags_only.find { |arg| arg.start_with?(arg_prefix) } return unless flag_with_value flag_with_value.delete_prefix(arg_prefix) end |
#verbose? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
18 |
# File 'cli/args.rbi', line 18 def verbose?; end |