diff options
| author | Jack Nagel | 2013-07-21 20:09:55 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-07-21 20:09:55 -0500 |
| commit | d6ed7fea4ae611c9418ef9c310b233d9434f1998 (patch) | |
| tree | 3f818fe8ac3b148ddce0af2a8df01b64c0f3b500 /Library/Homebrew | |
| parent | a1e7d7177f713c3d3bed79e5723849875cd0df2f (diff) | |
| download | brew-d6ed7fea4ae611c9418ef9c310b233d9434f1998.tar.bz2 | |
Cache pkgutil results at the source
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/macos.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/os/mac/xcode.rb | 21 |
2 files changed, 14 insertions, 11 deletions
diff --git a/Library/Homebrew/macos.rb b/Library/Homebrew/macos.rb index 1359d2b48..b86bc8f42 100644 --- a/Library/Homebrew/macos.rb +++ b/Library/Homebrew/macos.rb @@ -234,7 +234,9 @@ module MacOS extend self end def pkgutil_info id - `/usr/sbin/pkgutil --pkg-info "#{id}" 2>/dev/null`.strip + (@pkginfo ||= {}).fetch(id.to_s) do + @pkginfo[id.to_s] = `/usr/sbin/pkgutil --pkg-info "#{id}" 2>/dev/null`.strip + end end end diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb index d8ac28a9e..bfac9f9bd 100644 --- a/Library/Homebrew/os/mac/xcode.rb +++ b/Library/Homebrew/os/mac/xcode.rb @@ -182,16 +182,17 @@ module MacOS::CLT extend self !latest_version? end + # Version string (a pretty damn long one) of the CLT package. + # Note, that different ways to install the CLTs lead to different + # version numbers. def version - # The pkgutils calls are slow, don't repeat if no CLT installed. - return @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 ||= [STANDALONE_PKG_ID, FROM_XCODE_PKG_ID].find do |id| - MacOS.pkgutil_info(id) =~ /version: (.+)$/ - end && $1 + @version ||= detect_version + end + + def detect_version + [STANDALONE_PKG_ID, FROM_XCODE_PKG_ID].find do |id| + version = MacOS.pkgutil_info(id)[/version: (.+)$/, 1] + return version if version + end end end |
