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
|
||||
@options = Options.new
|
||||
@invalid_option_names = []
|
||||
@requirement_messages = []
|
||||
|
||||
@@attempted ||= Set.new
|
||||
|
||||
@ -251,6 +252,7 @@ class FormulaInstaller
|
||||
opoo "Bottle installation failed: building from source."
|
||||
raise BuildToolsError, [formula] unless DevelopmentTools.installed?
|
||||
else
|
||||
puts_requirement_messages
|
||||
@poured_bottle = true
|
||||
end
|
||||
end
|
||||
@ -260,6 +262,7 @@ class FormulaInstaller
|
||||
unless @poured_bottle
|
||||
not_pouring = !pour_bottle || @pour_failed
|
||||
compute_and_install_dependencies if not_pouring && !ignore_deps?
|
||||
puts_requirement_messages
|
||||
build
|
||||
clean
|
||||
|
||||
@ -334,17 +337,21 @@ class FormulaInstaller
|
||||
end
|
||||
|
||||
def check_requirements(req_map)
|
||||
@requirement_messages = []
|
||||
fatals = []
|
||||
|
||||
req_map.each_pair do |dependent, reqs|
|
||||
next if dependent.installed?
|
||||
reqs.each do |req|
|
||||
puts "#{dependent}: #{req.message}"
|
||||
@requirement_messages << "#{dependent}: #{req.message}"
|
||||
fatals << req if req.fatal?
|
||||
end
|
||||
end
|
||||
|
||||
raise UnsatisfiedRequirements, fatals unless fatals.empty?
|
||||
return if fatals.empty?
|
||||
|
||||
puts_requirement_messages
|
||||
raise UnsatisfiedRequirements, fatals
|
||||
end
|
||||
|
||||
def install_requirement_default_formula?(req, dependent, build)
|
||||
@ -831,4 +838,10 @@ class FormulaInstaller
|
||||
@@locked.clear
|
||||
@hold_locks = false
|
||||
end
|
||||
|
||||
def puts_requirement_messages
|
||||
return unless @requirement_messages
|
||||
return if @requirement_messages.empty?
|
||||
puts @requirement_messages
|
||||
end
|
||||
end
|
||||
|
||||
@ -27,4 +27,27 @@ class IntegrationCommandTestInstall < IntegrationCommandTestCase
|
||||
assert_match "testball1: this formula has no --with-fo option so it will be ignored!",
|
||||
cmd("install", "testball1", "--with-fo")
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user