Pass args directly to prevent_build_flags.

This commit is contained in:
Markus Reiter 2020-07-28 12:55:46 +02:00
parent 36458b2356
commit c470a6ff43
5 changed files with 18 additions and 23 deletions

View File

@ -69,19 +69,6 @@ module Homebrew
named.blank? named.blank?
end end
# If the user passes any flags that trigger building over installing from
# a bottle, they are collected here and returned as an Array for checking.
def collect_build_args
build_flags = []
build_flags << "--HEAD" if HEAD?
build_flags << "--universal" if build_universal?
build_flags << "--build-bottle" if build_bottle?
build_flags << "--build-from-source" if build_from_source?
build_flags
end
def formulae def formulae
require "formula" require "formula"

View File

@ -129,7 +129,7 @@ module Homebrew
# if the user's flags will prevent bottle only-installations when no # if the user's flags will prevent bottle only-installations when no
# developer tools are available, we need to stop them early on # developer tools are available, we need to stop them early on
FormulaInstaller.prevent_build_flags unless DevelopmentTools.installed? FormulaInstaller.prevent_build_flags(args)
args.formulae.each do |f| args.formulae.each do |f|
# head-only without --HEAD is an error # head-only without --HEAD is an error

View File

@ -57,7 +57,7 @@ module Homebrew
def reinstall def reinstall
args = reinstall_args.parse args = reinstall_args.parse
FormulaInstaller.prevent_build_flags unless DevelopmentTools.installed? FormulaInstaller.prevent_build_flags(args)
Install.perform_preinstall_checks Install.perform_preinstall_checks

View File

@ -70,12 +70,12 @@ module Homebrew
named_formulae_specified = !formulae.empty? && casks.empty? named_formulae_specified = !formulae.empty? && casks.empty?
named_casks_specified = !casks.empty? && formulae.empty? named_casks_specified = !casks.empty? && formulae.empty?
upgrade_outdated_formulae(formulae) unless named_casks_specified upgrade_outdated_formulae(formulae, args: args) unless named_casks_specified
upgrade_outdated_casks(casks) unless named_formulae_specified upgrade_outdated_casks(casks) unless named_formulae_specified
end end
def upgrade_outdated_formulae(formulae) def upgrade_outdated_formulae(formulae, args:)
FormulaInstaller.prevent_build_flags unless DevelopmentTools.installed? FormulaInstaller.prevent_build_flags(args)
Install.perform_preinstall_checks Install.perform_preinstall_checks

View File

@ -95,10 +95,18 @@ class FormulaInstaller
# When no build tools are available and build flags are passed through ARGV, # When no build tools are available and build flags are passed through ARGV,
# it's necessary to interrupt the user before any sort of installation # it's necessary to interrupt the user before any sort of installation
# can proceed. Only invoked when the user has no developer tools. # can proceed. Only raises when the user has no developer tools.
def self.prevent_build_flags def self.prevent_build_flags(args)
build_flags = args&.collect_build_args return if DevelopmentTools.installed?
return if build_flags.blank?
build_flags = []
build_flags << "--HEAD" if args.HEAD?
build_flags << "--universal" if args.universal?
build_flags << "--build-bottle" if args.build_bottle?
build_flags << "--build-from-source" if args.build_from_source?
return if build_flags.empty?
all_bottled = args.formulae.all?(&:bottled?) all_bottled = args.formulae.all?(&:bottled?)
raise BuildFlagsError.new(build_flags, bottled: all_bottled) raise BuildFlagsError.new(build_flags, bottled: all_bottled)
@ -475,7 +483,7 @@ class FormulaInstaller
if req.prune_from_option?(build) if req.prune_from_option?(build)
Requirement.prune Requirement.prune
elsif req.satisfied?(args: Homebrew.args) elsif req.satisfied?(args: args)
Requirement.prune Requirement.prune
elsif (req.build? || req.test?) && !keep_build_test elsif (req.build? || req.test?) && !keep_build_test
Requirement.prune Requirement.prune