From ba2b2356115c0106dc5ab7c555ed4e0f2d054017 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Fri, 8 Feb 2013 08:55:42 -0800 Subject: [PATCH] brew: use a shell wrapper script for brew This reverts commit dfd4dd12a41e1697ee9d5feac12cc1ea7c3a590e. Fixes the problems from #17683 and #17685. --- Library/brew.rb | 3 ++- bin/brew | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100755 bin/brew diff --git a/Library/brew.rb b/Library/brew.rb index ea46c9b07faa..e532ca829b72 100755 --- a/Library/brew.rb +++ b/Library/brew.rb @@ -3,7 +3,8 @@ std_trap = trap("INT") { exit! 130 } # no backtrace thanks -HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE'] = File.expand_path(__FILE__) +HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE'] +HOMEBREW_BREW_FILE = ENV['HOMEBREW_BREW_FILE'] ||= File.expand_path(__FILE__) if ARGV == %w{--prefix} puts File.dirname(File.dirname(HOMEBREW_BREW_FILE)) diff --git a/bin/brew b/bin/brew new file mode 100755 index 000000000000..027640677c9a --- /dev/null +++ b/bin/brew @@ -0,0 +1,24 @@ +#!/bin/sh +BREW_FILE_DIRECTORY=$(dirname "$0") +BREW_FILE_DIRECTORY=$(cd "$BREW_FILE_DIRECTORY" && pwd -P) + +BREW_FILENAME=$(basename "$0") +export HOMEBREW_BREW_FILE="$BREW_FILE_DIRECTORY/$BREW_FILENAME" + +BREW_SYMLINK=$(readlink $0) +if [ -n "$BREW_SYMLINK" ] +then + BREW_SYMLINK_DIRECTORY=$(dirname "$BREW_SYMLINK") + BREW_FILE_DIRECTORY=$(cd "$BREW_FILE_DIRECTORY" && + cd "$BREW_SYMLINK_DIRECTORY" && pwd -P) +fi + +BREW_LIBRARY_DIRECTORY=$(cd "$BREW_FILE_DIRECTORY"/../Library && pwd -P) + +BREW_SYSTEM=$(uname -s | tr "[:upper:]" "[:lower:]") +if [ "$BREW_SYSTEM" = "darwin" ] +then + exec "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@" +else + exec ruby -W0 "$BREW_LIBRARY_DIRECTORY/brew.rb" "$@" +fi