From dc68752d3df8716f24a0b5feb1f728924ee0656d Mon Sep 17 00:00:00 2001 From: Max Howell Date: Mon, 27 Aug 2012 12:57:34 -0400 Subject: [PATCH] Prevent CLT.version being "" Also cache the response if N/A as it is slow to keep repeating that. And only do one pkgutil call if possible. --- Library/Homebrew/macos/xcode.rb | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/Library/Homebrew/macos/xcode.rb b/Library/Homebrew/macos/xcode.rb index 69f6af894d..b7a3a26c9d 100644 --- a/Library/Homebrew/macos/xcode.rb +++ b/Library/Homebrew/macos/xcode.rb @@ -163,22 +163,15 @@ module MacOS::CLT extend self end def version + # The pkgutils calls are slow, don't repeat if no CLT installed. + @version if @version_determined + + @version_determined = true # Version string (a pretty damn long one) of the CLT package. # Note, that different ways to install the CLTs lead to different # version numbers. - @version ||= begin - standalone = MacOS.pkgutil_info(STANDALONE_PKG_ID) - from_xcode = MacOS.pkgutil_info(FROM_XCODE_PKG_ID) - - if not standalone.empty? - standalone =~ /version: (.*)$/ - $1 - elsif not from_xcode.empty? - from_xcode =~ /version: (.*)$/ - $1 - else - nil - end - end + @version ||= [STANDALONE_PKG_ID, FROM_XCODE_PKG_ID].find do |id| + MacOS.pkgutil_info(id) =~ /version: (.+)$/ + end && $1 end end