diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index edf8093bfb..074f5fbc3a 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -223,9 +223,16 @@ module Homebrew def check_development_tools checks = Diagnostic::Checks.new - checks.all_development_tools_checks.each do |check| + all_development_tools_checks = checks.development_tools_checks + + checks.fatal_development_tools_checks + all_development_tools_checks.each do |check| out = checks.send(check) - opoo out unless out.nil? + next if out.nil? + if checks.fatal_development_tools_checks.include?(check) + odie out + else + opoo out + end end end diff --git a/Library/Homebrew/diagnostic.rb b/Library/Homebrew/diagnostic.rb index 015f95ec5c..230c96bfc8 100644 --- a/Library/Homebrew/diagnostic.rb +++ b/Library/Homebrew/diagnostic.rb @@ -87,12 +87,17 @@ module Homebrew end ############# END HELPERS - def all_development_tools_checks + def development_tools_checks %w[ check_for_installed_developer_tools ] end + def fatal_development_tools_checks + %w[ + ] + end + def check_for_installed_developer_tools return if DevelopmentTools.installed? diff --git a/Library/Homebrew/extend/os/mac/diagnostic.rb b/Library/Homebrew/extend/os/mac/diagnostic.rb index 9b018bd020..a2f715890c 100644 --- a/Library/Homebrew/extend/os/mac/diagnostic.rb +++ b/Library/Homebrew/extend/os/mac/diagnostic.rb @@ -1,7 +1,7 @@ module Homebrew module Diagnostic class Checks - def all_development_tools_checks + def development_tools_checks %w[ check_for_unsupported_osx check_for_prerelease_xcode @@ -12,6 +12,18 @@ module Homebrew ] end + def fatal_development_tools_checks + if MacOS.prerelease? + %w[ + check_xcode_up_to_date + check_clt_up_to_date + ] + else + %w[ + ] + end + end + def check_for_unsupported_osx return if ARGV.homebrew_developer? @@ -51,10 +63,17 @@ module Homebrew def check_xcode_up_to_date return unless MacOS::Xcode.installed? && MacOS::Xcode.outdated? + if OS::Mac.prerelease? + xcode_select_nudge = <<-EOS.undent + If #{MacOS::Xcode.latest_version} is installed, you may need to: + sudo xcode-select --switch /path/to/Xcode-beta.app + EOS + end + <<-EOS.undent Your Xcode (#{MacOS::Xcode.version}) is outdated Please update to Xcode #{MacOS::Xcode.latest_version}. - #{MacOS::Xcode.update_instructions} + #{MacOS::Xcode.update_instructions}#{xcode_select_nudge} EOS end