
This strategy is only used in one formula, so we can just replace it with a dependency. It could be done with a requirement, but since this is a low-impact change (it only matters for head builds on Leopard), I'm not sure it's worth the effort. The constant is retained for compatibility, though I could find only one other reference to it on GitHub, in a formula that was removed from core almost two years ago.
47 lines
1.2 KiB
Ruby
Executable File
47 lines
1.2 KiB
Ruby
Executable File
#!/usr/bin/ruby -W0
|
|
# This script because we support $GIT, $HOMEBREW_SVN, etc. and Xcode-only
|
|
# configurations. Order is careful to be what the user would want.
|
|
|
|
F = File.basename(__FILE__).freeze
|
|
D = File.expand_path(File.dirname(__FILE__)).freeze
|
|
|
|
def exec *args
|
|
# prevent fork-bombs
|
|
arg0 = if args.size == 1
|
|
args.first.split(' ')
|
|
else
|
|
args
|
|
end.first
|
|
return if arg0 =~ /^#{F}/i
|
|
return if File.expand_path(arg0) == File.expand_path(__FILE__)
|
|
|
|
Kernel.exec(*args)
|
|
end
|
|
|
|
case F.downcase
|
|
when 'git' then %W{HOMEBREW_GIT GIT}
|
|
when 'svn' then %W{HOMEBREW_SVN}
|
|
else []
|
|
end.each do |key|
|
|
exec ENV[key], *ARGV if ENV[key] and File.executable? ENV[key]
|
|
end
|
|
|
|
brew_version = File.expand_path("#{D}/../../../bin/#{F}")
|
|
exec brew_version, *ARGV if File.executable? brew_version
|
|
|
|
`/usr/bin/which -a #{F} 2>/dev/null`.split("\n").each do |path|
|
|
exec path, *ARGV
|
|
end
|
|
|
|
# xcrun hangs if xcode-select is set to "/"
|
|
path = `/usr/bin/xcode-select -print-path 2>/dev/null`.chomp
|
|
if path != "/"
|
|
path = `/usr/bin/xcrun -find #{F} 2>/dev/null`.chomp
|
|
exec path, *ARGV if File.executable? path
|
|
end
|
|
|
|
path = "/Applications/Xcode.app/Contents/Developer/usr/bin/#{F}"
|
|
exec path, *ARGV if File.executable? path
|
|
|
|
abort "You must: brew install #{F}"
|