Fix some doublethink in the Xcode module

Xcode.prefix and Xcode.installed? use slightly different heuristics to
find Xcode. In fact, .installed? basically duplicates a portion of the
.prefix logic. In practice, the methods results are usually consistent,
but .installed? does not handle non-standard prefixes if mdfind cannot
locate Xcode (for example, if the user has disabled Spotlight indexing).

Since .installed? is essentially a subset of the .prefix logic, we can
rely on the result from .prefix instead.

Fixes Homebrew/homebrew#16790.
This commit is contained in:
Jack Nagel 2012-12-29 17:16:38 -06:00
parent 9362a7c897
commit de1eabf22c

View File

@ -58,12 +58,7 @@ module MacOS::Xcode extend self
end
def installed?
# Telling us whether the Xcode.app is installed or not.
@installed ||= V4_BUNDLE_PATH.exist? ||
V3_BUNDLE_PATH.exist? ||
MacOS.app_with_bundle_id(V4_BUNDLE_ID) ||
MacOS.app_with_bundle_id(V3_BUNDLE_ID) ||
false
not prefix.nil?
end
def version