diff options
| author | Jack Nagel | 2013-05-22 22:26:09 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-05-22 22:30:38 -0500 |
| commit | 950c9b0bee5d700705effc4315323fc309b20852 (patch) | |
| tree | 94a5246aed798397f9af2f8372b662b7c7396e5f /Library/Homebrew | |
| parent | 7ce40f75c51704f396c64c0ebc4c8cd4f45d9e89 (diff) | |
| download | homebrew-950c9b0bee5d700705effc4315323fc309b20852.tar.bz2 | |
Refactor Xcode/CLT version checks
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/cmd/doctor.rb | 49 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/install.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/os/mac/xcode.rb | 19 |
3 files changed, 40 insertions, 30 deletions
diff --git a/Library/Homebrew/cmd/doctor.rb b/Library/Homebrew/cmd/doctor.rb index 2276f1c4a..0ba3ef999 100644 --- a/Library/Homebrew/cmd/doctor.rb +++ b/Library/Homebrew/cmd/doctor.rb @@ -215,33 +215,38 @@ def check_for_broken_symlinks end end -def check_for_latest_xcode - if not MacOS::Xcode.installed? - if MacOS.version >= 10.7 - if not MacOS::CLT.installed? - <<-EOS.undent - No developer tools installed - You should install the Command Line Tools: http://connect.apple.com - EOS - elsif not MacOS::CLT.latest_version? - <<-EOS.undent - A newer Command Line Tools for Xcode release is available - You should install the latest version from: http://connect.apple.com - EOS - end - else - <<-EOS.undent - Xcode not installed - Most stuff needs Xcode to build: http://developer.apple.com/xcode/ - EOS - end - elsif MacOS::Xcode.version < MacOS::Xcode.latest_version then <<-EOS.undent +def check_xcode_clt + if MacOS::Xcode.installed? + __check_xcode_up_to_date + elsif MacOS.version >= 10.7 + __check_clt_up_to_date + else <<-EOS.undent + Xcode not installed + Most stuff needs Xcode to build: http://developer.apple.com/xcode/ + EOS + end +end + +def __check_xcode_up_to_date + if MacOS::Xcode.outdated? then <<-EOS.undent Your Xcode (#{MacOS::Xcode.version}) is outdated Please install Xcode #{MacOS::Xcode.latest_version}. EOS end end +def __check_clt_up_to_date + if not MacOS::CLT.installed? then <<-EOS.undent + No developer tools installed + You should install the Command Line Tools: http://connect.apple.com + EOS + elsif MacOS::CLT.outdated? then <<-EOS.undent + A newer Command Line Tools for Xcode release is available + You should install the latest version from: http://connect.apple.com + EOS + end +end + def check_for_stray_developer_directory # if the uninstaller script isn't there, it's a good guess neither are # any troublesome leftover Xcode files @@ -271,7 +276,7 @@ def check_cc end def check_standard_compilers - return if check_for_latest_xcode # only check if Xcode is up to date + return if check_xcode_clt # only check if Xcode is up to date compiler_status = MacOS.compilers_standard? if not compiler_status and not compiler_status.nil? then <<-EOS.undent Your compilers are different from the standard versions for your Xcode. diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index f44f67091..c0aa1a2e9 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -42,7 +42,7 @@ module Homebrew extend self def check_xcode require 'cmd/doctor' checks = Checks.new - %w{check_for_latest_xcode check_xcode_license_approved}.each do |check| + %w{check_xcode_clt check_xcode_license_approved}.each do |check| out = checks.send(check) opoo out unless out.nil? end diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb index d399e8b35..0ec9e0bd1 100644 --- a/Library/Homebrew/os/mac/xcode.rb +++ b/Library/Homebrew/os/mac/xcode.rb @@ -19,17 +19,18 @@ module MacOS::Xcode extend self def latest_version case MacOS.version - when 10.5 then "3.1.4" - when 10.6 then "3.2.6" + when 10.5 then "3.1.4" + when 10.6 then "3.2.6" + when 10.7..10.8 then "4.6.2" else - if MacOS.version >= 10.7 - "4.6.2" - else - raise "Mac OS X `#{MacOS.version}' is invalid" - end + raise "Mac OS X '#{MacOS.version}' is invalid" end end + def outdated? + version < latest_version + end + def prefix @prefix ||= begin path = Pathname.new(folder) @@ -158,6 +159,10 @@ module MacOS::CLT extend self $1.to_i >= 425 and $3.to_i >= 28 end + def outdated? + !latest_version? + end + def version # The pkgutils calls are slow, don't repeat if no CLT installed. return @version if @version_determined |
