aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMike McQuaid2016-09-07 09:51:06 +0100
committerGitHub2016-09-07 09:51:06 +0100
commitd1ba4f44c099ab2a5db311e9237c1892ebf83c6c (patch)
tree0b3e134a1bb0477db0d94067e61944acb9232396 /Library
parent9c5af247e82beb4668671d61e3f82958052c73f4 (diff)
parentf1cc1265afa43afb9bffba17c9fc18776b62dd99 (diff)
downloadbrew-d1ba4f44c099ab2a5db311e9237c1892ebf83c6c.tar.bz2
Merge pull request #833 from DomT4/death_by_xcode
xcode: die unless Xcode/CLT up-to-date on prerelease macOS
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/install.rb11
-rw-r--r--Library/Homebrew/diagnostic.rb7
-rw-r--r--Library/Homebrew/extend/os/mac/diagnostic.rb23
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