diff options
| author | Mike McQuaid | 2016-09-07 09:51:06 +0100 |
|---|---|---|
| committer | GitHub | 2016-09-07 09:51:06 +0100 |
| commit | d1ba4f44c099ab2a5db311e9237c1892ebf83c6c (patch) | |
| tree | 0b3e134a1bb0477db0d94067e61944acb9232396 | |
| parent | 9c5af247e82beb4668671d61e3f82958052c73f4 (diff) | |
| parent | f1cc1265afa43afb9bffba17c9fc18776b62dd99 (diff) | |
| download | brew-d1ba4f44c099ab2a5db311e9237c1892ebf83c6c.tar.bz2 | |
Merge pull request #833 from DomT4/death_by_xcode
xcode: die unless Xcode/CLT up-to-date on prerelease macOS
| -rw-r--r-- | Library/Homebrew/cmd/install.rb | 11 | ||||
| -rw-r--r-- | Library/Homebrew/diagnostic.rb | 7 | ||||
| -rw-r--r-- | Library/Homebrew/extend/os/mac/diagnostic.rb | 23 |
3 files changed, 36 insertions, 5 deletions
diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index edf8093bf..074f5fbc3 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 015f95ec5..230c96bfc 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 9b018bd02..a2f715890 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 |
