diff --git a/Library/Homebrew/cli/args.rb b/Library/Homebrew/cli/args.rb index a951194e7cb9ce08a9625724aa6c8556dd41af11..a32c50b01c0cbaa44f35f73545907f7ccdf489ba 100644 --- a/Library/Homebrew/cli/args.rb +++ b/Library/Homebrew/cli/args.rb @@ -5,7 +5,7 @@ require "ostruct" module Homebrew module CLI class Args < OpenStruct - attr_accessor :processed_options, :args_parsed + attr_reader :processed_options, :args_parsed # undefine tap to allow --tap argument undef tap @@ -16,6 +16,12 @@ module Homebrew @processed_options = [] end + def freeze_processed_options!(processed_options) + @processed_options += processed_options + @processed_options.freeze + @args_parsed = true + end + def option_to_name(option) option.sub(/\A--?/, "") .tr("-", "_") diff --git a/Library/Homebrew/cli/parser.rb b/Library/Homebrew/cli/parser.rb index 7e9b21cd6f6c4535991e4d58acb812353b986ae3..bda488b0c3f248d45ef55de7c7afd29047e87116 100644 --- a/Library/Homebrew/cli/parser.rb +++ b/Library/Homebrew/cli/parser.rb @@ -140,10 +140,10 @@ module Homebrew end check_constraint_violations @args[:remaining] = remaining_args - @args.args_parsed = @args_parsed = true - @args.processed_options = @processed_options + @args.freeze_processed_options!(@processed_options) Homebrew.args = @args cmdline_args.freeze + @args_parsed = true @parser end