aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorJack Nagel2013-05-22 22:26:09 -0500
committerJack Nagel2013-05-22 22:30:38 -0500
commit950c9b0bee5d700705effc4315323fc309b20852 (patch)
tree94a5246aed798397f9af2f8372b662b7c7396e5f /Library/Homebrew
parent7ce40f75c51704f396c64c0ebc4c8cd4f45d9e89 (diff)
downloadhomebrew-950c9b0bee5d700705effc4315323fc309b20852.tar.bz2
Refactor Xcode/CLT version checks
Diffstat (limited to 'Library/Homebrew')
-rw-r--r--Library/Homebrew/cmd/doctor.rb49
-rw-r--r--Library/Homebrew/cmd/install.rb2
-rw-r--r--Library/Homebrew/os/mac/xcode.rb19
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