Merge pull request #7638 from MikeMcQuaid/kill-argv

Remove HomebrewArgvExtension
This commit is contained in:
Mike McQuaid 2020-05-24 09:17:07 +01:00 committed by GitHub
commit e6dda524de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 21 additions and 54 deletions

View File

@ -50,7 +50,7 @@ begin
help_flag = !ENV["HOMEBREW_HELP"].nil?
cmd = nil
ARGV.dup.each_with_index do |arg, i|
ARGV.each_with_index do |arg, i|
break if help_flag && cmd
if arg == "help" && !cmd

View File

@ -38,7 +38,7 @@ module Cask
end
def audit
if !ARGV.value("language") && language_blocks
if !Homebrew.args.value("language") && language_blocks
audit_all_languages
else
audit_cask_instance(cask)

View File

@ -10,7 +10,7 @@ module Homebrew
# undefine tap to allow --tap argument
undef tap
def initialize(argv = ARGV.dup.freeze, set_default_args: false)
def initialize(argv = ARGV.freeze, set_default_args: false)
super()
@processed_options = []
@ -177,6 +177,14 @@ module Homebrew
formulae.any? { |args_f| args_f.full_name == f.full_name }
end
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
private
def option_to_name(option)

View File

@ -13,7 +13,7 @@ module Homebrew
class Parser
attr_reader :processed_options, :hide_from_man_page
def self.parse(argv = ARGV.dup.freeze, allow_no_named_args: false, &block)
def self.parse(argv = ARGV.freeze, allow_no_named_args: false, &block)
new(argv, &block).parse(allow_no_named_args: allow_no_named_args)
end
@ -38,7 +38,7 @@ module Homebrew
}
end
def initialize(argv = ARGV.dup.freeze, &block)
def initialize(argv = ARGV.freeze, &block)
@parser = OptionParser.new
@argv = argv
@args = Homebrew::CLI::Args.new(@argv)

View File

@ -19,7 +19,7 @@ module Homebrew
def irb_args
# work around IRB modifying ARGV.
Homebrew::CLI::Parser.new(ARGV.dup) do
Homebrew::CLI::Parser.new(ARGV.dup.freeze) do
usage_banner <<~EOS
`irb` [<options>]

View File

@ -1,9 +0,0 @@
# frozen_string_literal: true
module HomebrewArgvExtension
def value(name)
arg_prefix = "--#{name}="
flag_with_value = find { |arg| arg.start_with?(arg_prefix) }
flag_with_value&.delete_prefix(arg_prefix)
end
end

View File

@ -746,7 +746,7 @@ class FormulaInstaller
formula.options.each do |opt|
name = opt.name[/^([^=]+)=$/, 1]
value = ARGV.value(name) if name
value = Homebrew.args.value(name) if name
args << "--#{name}=#{value}" if value
end

View File

@ -35,13 +35,10 @@ require "env_config"
require "config"
require "os"
require "extend/ARGV"
require "cli/args"
require "messages"
require "system_command"
ARGV.extend(HomebrewArgvExtension)
HOMEBREW_PRODUCT = ENV["HOMEBREW_PRODUCT"]
HOMEBREW_VERSION = ENV["HOMEBREW_VERSION"]
HOMEBREW_WWW = "https://brew.sh"

View File

@ -42,11 +42,7 @@ module OS
end
def languages
@languages ||= [
*ARGV.value("language")&.split(","),
*ENV["HOMEBREW_LANGUAGES"]&.split(","),
*ENV["LANG"]&.slice(/[a-z]+/),
].uniq
@languages ||= [*ENV["LANG"]&.slice(/[a-z]+/)].uniq
end
def language

View File

@ -60,9 +60,11 @@ module OS
def languages
@languages ||= [
*ARGV.value("language")&.split(","),
*Homebrew.args.value("language")&.split(","),
*ENV["HOMEBREW_LANGUAGES"]&.split(","),
*Open3.capture2("defaults", "read", "-g", "AppleLanguages")[0].scan(/[^ \n"(),]+/),
*Open3.capture2("defaults", "read", "-g", "AppleLanguages")
.first
.scan(/[^ \n"(),]+/),
].uniq
end

View File

@ -1,22 +0,0 @@
# frozen_string_literal: true
require "extend/ARGV"
describe HomebrewArgvExtension do
subject { argv.extend(described_class) }
let(:argv) { ["mxcl"] }
describe "#value" do
let(:argv) { ["--foo=", "--bar=ab"] }
it "returns the value for a given string" do
expect(subject.value("foo")).to eq ""
expect(subject.value("bar")).to eq "ab"
end
it "returns nil if there is no matching argument" do
expect(subject.value("baz")).to be nil
end
end
end

View File

@ -48,8 +48,6 @@ describe FormulaInstaller do
end
specify "basic installation" do
ARGV << "--with-invalid_flag" # added to ensure it doesn't fail install
temporary_install(Testball.new) do |f|
# Test that things made it into the Keg
expect(f.prefix/"readme").to exist

View File

@ -172,7 +172,6 @@ RSpec.configure do |config|
@__files_before_test = find_files
@__argv = ARGV.dup
@__env = ENV.to_hash # dup doesn't work on ENV
@__stdout = $stdout.clone
@ -187,7 +186,6 @@ RSpec.configure do |config|
rescue SystemExit => e
raise "Unexpected exit with status #{e.status}."
ensure
ARGV.replace(@__argv)
ENV.replace(@__env)
$stdout.reopen(@__stdout)

View File

@ -35,7 +35,7 @@ describe Utils::Bottles::Collector do
end
it "ignores HOMEBREW_SKIP_OR_LATER_BOTTLES on release versions", :needs_macos do
allow(ARGV).to receive(:skip_or_later_bottles?).and_return(true)
allow(Homebrew::EnvConfig).to receive(:skip_or_later_bottles?).and_return(true)
allow(OS::Mac).to receive(:prerelease?).and_return(false)
subject[:mavericks] = "foo"
expect(subject.send(:find_matching_tag, :mavericks)).to eq(:mavericks)

View File

@ -1,7 +1,6 @@
# frozen_string_literal: true
require "tab"
require "extend/ARGV"
module Utils
class Bottles