Merge pull request #1537 from umireon/nonfatal-requirement-message-once
install: suppress redundunt warnings with `depends_on` requirement
This commit is contained in:
commit
a16bfa57e8
@ -52,6 +52,7 @@ class FormulaInstaller
|
|||||||
@debug = false
|
@debug = false
|
||||||
@options = Options.new
|
@options = Options.new
|
||||||
@invalid_option_names = []
|
@invalid_option_names = []
|
||||||
|
@requirement_messages = []
|
||||||
|
|
||||||
@@attempted ||= Set.new
|
@@attempted ||= Set.new
|
||||||
|
|
||||||
@ -251,6 +252,7 @@ class FormulaInstaller
|
|||||||
opoo "Bottle installation failed: building from source."
|
opoo "Bottle installation failed: building from source."
|
||||||
raise BuildToolsError, [formula] unless DevelopmentTools.installed?
|
raise BuildToolsError, [formula] unless DevelopmentTools.installed?
|
||||||
else
|
else
|
||||||
|
puts_requirement_messages
|
||||||
@poured_bottle = true
|
@poured_bottle = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -260,6 +262,7 @@ class FormulaInstaller
|
|||||||
unless @poured_bottle
|
unless @poured_bottle
|
||||||
not_pouring = !pour_bottle || @pour_failed
|
not_pouring = !pour_bottle || @pour_failed
|
||||||
compute_and_install_dependencies if not_pouring && !ignore_deps?
|
compute_and_install_dependencies if not_pouring && !ignore_deps?
|
||||||
|
puts_requirement_messages
|
||||||
build
|
build
|
||||||
clean
|
clean
|
||||||
|
|
||||||
@ -334,17 +337,21 @@ class FormulaInstaller
|
|||||||
end
|
end
|
||||||
|
|
||||||
def check_requirements(req_map)
|
def check_requirements(req_map)
|
||||||
|
@requirement_messages = []
|
||||||
fatals = []
|
fatals = []
|
||||||
|
|
||||||
req_map.each_pair do |dependent, reqs|
|
req_map.each_pair do |dependent, reqs|
|
||||||
next if dependent.installed?
|
next if dependent.installed?
|
||||||
reqs.each do |req|
|
reqs.each do |req|
|
||||||
puts "#{dependent}: #{req.message}"
|
@requirement_messages << "#{dependent}: #{req.message}"
|
||||||
fatals << req if req.fatal?
|
fatals << req if req.fatal?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
raise UnsatisfiedRequirements, fatals unless fatals.empty?
|
return if fatals.empty?
|
||||||
|
|
||||||
|
puts_requirement_messages
|
||||||
|
raise UnsatisfiedRequirements, fatals
|
||||||
end
|
end
|
||||||
|
|
||||||
def install_requirement_default_formula?(req, dependent, build)
|
def install_requirement_default_formula?(req, dependent, build)
|
||||||
@ -831,4 +838,10 @@ class FormulaInstaller
|
|||||||
@@locked.clear
|
@@locked.clear
|
||||||
@hold_locks = false
|
@hold_locks = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def puts_requirement_messages
|
||||||
|
return unless @requirement_messages
|
||||||
|
return if @requirement_messages.empty?
|
||||||
|
puts @requirement_messages
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -27,4 +27,27 @@ class IntegrationCommandTestInstall < IntegrationCommandTestCase
|
|||||||
assert_match "testball1: this formula has no --with-fo option so it will be ignored!",
|
assert_match "testball1: this formula has no --with-fo option so it will be ignored!",
|
||||||
cmd("install", "testball1", "--with-fo")
|
cmd("install", "testball1", "--with-fo")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_install_with_nonfatal_requirement
|
||||||
|
setup_test_formula "testball1", <<-EOS.undent
|
||||||
|
class NonFatalRequirement < Requirement
|
||||||
|
satisfy { false }
|
||||||
|
end
|
||||||
|
depends_on NonFatalRequirement
|
||||||
|
EOS
|
||||||
|
message = "NonFatalRequirement unsatisfied!"
|
||||||
|
assert_equal 1, cmd("install", "testball1").scan(message).size
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_install_with_fatal_requirement
|
||||||
|
setup_test_formula "testball1", <<-EOS.undent
|
||||||
|
class FatalRequirement < Requirement
|
||||||
|
fatal true
|
||||||
|
satisfy { false }
|
||||||
|
end
|
||||||
|
depends_on FatalRequirement
|
||||||
|
EOS
|
||||||
|
message = "FatalRequirement unsatisfied!"
|
||||||
|
assert_equal 1, cmd_fail("install", "testball1").scan(message).size
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user