Merge pull request #7333 from GauthamGoli/argv-cleanup-21

cli/args: Make build_from_source public instance method
This commit is contained in:
Mike McQuaid 2020-04-19 13:23:34 +01:00 committed by GitHub
commit 2bbcab5615
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 29 additions and 33 deletions

View File

@ -9,9 +9,12 @@ module Homebrew
# undefine tap to allow --tap argument
undef tap
def initialize(argv:)
def initialize
super
@argv = argv
self[:remaining] = []
self[:cmdline_args] = ARGV_WITHOUT_MONKEY_PATCHING.dup
@args_parsed = false
@processed_options = []
end
@ -59,8 +62,6 @@ module Homebrew
end
def named
return [] if remaining.nil?
remaining
end
@ -164,6 +165,20 @@ module Homebrew
!(HEAD? || devel?)
end
# Whether a given formula should be built from source during the current
# installation run.
def build_formula_from_source?(f)
return false if !build_from_source && !build_bottle
formulae.any? { |args_f| args_f.full_name == f.full_name }
end
def build_from_source
return true if args_parsed && (build_from_source? || s?)
cmdline_args.include?("--build-from-source") || cmdline_args.include?("-s")
end
private
def downcased_unique_named
@ -206,12 +221,6 @@ module Homebrew
cmdline_args.include?("--build-bottle")
end
def build_from_source
return true if args_parsed && (build_from_source? || s?)
cmdline_args.include?("--build-from-source") || cmdline_args.include?("-s")
end
def spec(default = :stable)
if head
:head

View File

@ -37,11 +37,10 @@ module Homebrew
}
end
def initialize(args = ARGV, &block)
def initialize(&block)
@parser = OptionParser.new
@args = Homebrew::CLI::Args.new(argv: ARGV_WITHOUT_MONKEY_PATCHING)
@args[:remaining] = []
@args[:cmdline_args] = args.dup
@args = Homebrew::CLI::Args.new
@constraints = []
@conflicts = []
@switch_sources = {}
@ -259,7 +258,7 @@ module Homebrew
end
def option_passed?(name)
@args.respond_to?(name) || @args.respond_to?("#{name}?")
@args[name.to_sym] || @args["#{name}?".to_sym]
end
def wrap_option_desc(desc)

View File

@ -40,18 +40,6 @@ module HomebrewArgvExtension
arch&.to_sym
end
def build_from_source?
switch?("s") || include?("--build-from-source")
end
# Whether a given formula should be built from source during the current
# installation run.
def build_formula_from_source?(f)
return false if !build_from_source? && !build_bottle?
formulae.any? { |argv_f| argv_f.full_name == f.full_name }
end
def force_bottle?
include?("--force-bottle")
end

View File

@ -7,7 +7,7 @@ module Homebrew
def fetch_bottle?(f)
return true if ARGV.force_bottle? && f.bottle
return false unless f.bottle && f.pour_bottle?
return false if ARGV.build_formula_from_source?(f)
return false if Homebrew.args.build_formula_from_source?(f)
return false unless f.bottle.compatible_cellar?
true

View File

@ -49,7 +49,7 @@ class FormulaInstaller
@show_header = false
@ignore_deps = false
@only_deps = false
@build_from_source = ARGV.build_from_source?
@build_from_source = Homebrew.args.build_from_source
@build_bottle = false
@force_bottle = ARGV.force_bottle?
@include_test = ARGV.include?("--include-test")
@ -97,7 +97,7 @@ class FormulaInstaller
return false if !formula.bottled? && !formula.local_bottle_path
return true if force_bottle?
return false if build_from_source? || build_bottle? || interactive?
return false if Homebrew.args.build_from_source || build_bottle? || interactive?
return false if ARGV.cc
return false unless options.empty?
return false if formula.bottle_disabled?
@ -128,7 +128,7 @@ class FormulaInstaller
def install_bottle_for?(dep, build)
return pour_bottle? if dep == formula
return false if ARGV.build_formula_from_source?(dep)
return false if Homebrew.args.build_formula_from_source?(dep)
return false unless dep.bottle && dep.pour_bottle?
return false unless build.used_options.empty?
return false unless dep.bottle.compatible_cellar?
@ -591,7 +591,7 @@ class FormulaInstaller
fi.options |= Tab.remap_deprecated_options(df.deprecated_options, dep.options)
fi.options |= inherited_options
fi.options &= df.options
fi.build_from_source = ARGV.build_formula_from_source?(df)
fi.build_from_source = Homebrew.args.build_formula_from_source?(df)
fi.force_bottle = false
fi.verbose = verbose?
fi.quiet = quiet?

View File

@ -86,7 +86,7 @@ module Homebrew
end
def args
@args ||= CLI::Args.new(argv: ARGV)
@args ||= CLI::Args.new
end
def messages