From d0ff64666ad34ad71d8765db8d42f819ae658cd7 Mon Sep 17 00:00:00 2001
From: Mike McQuaid <mike@mikemcquaid.com>
Date: Wed, 24 Aug 2016 10:56:23 +0100
Subject: [PATCH] bin/brew: improve /usr/local/bin/brew handling.

If `/usr/local` is the prefix but not the repository (so bottles can be
used) then running `/usr/local/bin/brew` works great but
`$HOMEBREW_REPOSITORY/bin/brew` assumes the prefix is
`$HOMEBREW_REPOSITORY`. This is a pain when doing work on the Homebrew
repository and having e.g. `bin` in your `$PATH`. Improve this
behaviour so `bin/brew` knows how to handle this situation.
---
 bin/brew | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/bin/brew b/bin/brew
index 167a09756b..593043f9f2 100755
--- a/bin/brew
+++ b/bin/brew
@@ -31,6 +31,17 @@ then
   HOMEBREW_REPOSITORY="${BREW_FILE_DIRECTORY%/*}"
 fi
 
+# Try to find a /usr/local HOMEBREW_PREFIX where possible (for bottles)
+if [[ -L "/usr/local/bin/brew" ]]
+then
+  USR_LOCAL_BREW_FILE_DIRECTORY="$(symlink_target_directory "/usr/local/bin/brew" "/usr/local/bin")"
+  USR_LOCAL_HOMEBREW_REPOSITORY="${USR_LOCAL_BREW_FILE_DIRECTORY%/*}"
+  if [[ "$HOMEBREW_REPOSITORY" = "$USR_LOCAL_HOMEBREW_REPOSITORY" ]]
+  then
+    HOMEBREW_PREFIX="/usr/local"
+  fi
+fi
+
 HOMEBREW_LIBRARY="$HOMEBREW_REPOSITORY/Library"
 
 source "$HOMEBREW_LIBRARY/Homebrew/brew.sh"
-- 
GitLab