aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorMike McQuaid2016-08-24 10:56:23 +0100
committerMike McQuaid2016-08-24 10:56:28 +0100
commitd0ff64666ad34ad71d8765db8d42f819ae658cd7 (patch)
tree4e504c3e09dacb5477d670ac8a5bceadab90a03c /bin
parent2f9bf5f047ccc86b3d8f609265bd1af0981580f8 (diff)
downloadbrew-d0ff64666ad34ad71d8765db8d42f819ae658cd7.tar.bz2
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.
Diffstat (limited to 'bin')
-rwxr-xr-xbin/brew11
1 files changed, 11 insertions, 0 deletions
diff --git a/bin/brew b/bin/brew
index 167a09756..593043f9f 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"