#!/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__) if args[1] == '-print-path' and File.executable? args[0] puts args[0] exit 0 else Kernel.exec *args end end case F.downcase when 'git' then %W{HOMEBREW_GIT GIT} when 'svn' then "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}"