aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2013-02-08 08:55:42 -0800
committerMike McQuaid2013-02-21 21:42:18 +0000
commitba2b2356115c0106dc5ab7c555ed4e0f2d054017 (patch)
tree5705930d4364a05c99d5eaa37bc89317d8971e33
parent8b9d620bd7cfea905d598fd2a84782958a996246 (diff)
downloadhomebrew-ba2b2356115c0106dc5ab7c555ed4e0f2d054017.tar.bz2
brew: use a shell wrapper script for brew
This reverts commit dfd4dd12a41e1697ee9d5feac12cc1ea7c3a590e. Fixes the problems from #17683 and #17685.
-rwxr-xr-xLibrary/brew.rb3
-rwxr-xr-xbin/brew24
2 files changed, 26 insertions, 1 deletions
diff --git a/Library/brew.rb b/Library/brew.rb
index ea46c9b07..e532ca829 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 000000000..027640677
--- /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