From 6f91b429ceee780088b659e519e19262bcfd48cf Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Sun, 10 Jan 2016 19:35:16 +0000 Subject: Move some brew.rb logic to bin/brew. --- bin/brew | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) (limited to 'bin') diff --git a/bin/brew b/bin/brew index 5a4aef5fb..b0e38aba4 100755 --- a/bin/brew +++ b/bin/brew @@ -37,6 +37,19 @@ else HOMEBREW_CELLAR="$HOMEBREW_REPOSITORY/Cellar" fi +case "$*" in + --prefix) echo "$HOMEBREW_PREFIX"; exit 0 ;; + --cellar) echo "$HOMEBREW_CELLAR"; exit 0 ;; + --repository|--repo) echo "$HOMEBREW_REPOSITORY"; exit 0 ;; +esac + +if [ "$HOMEBREW_PREFIX" = "/" ] || [ "$HOMEBREW_PREFIX" = "/usr" ] +then + # it may work, but I only see pain this route and don't want to support it + echo "Cowardly refusing to continue at this prefix: $HOMEBREW_PREFIX" >&2 + exit 1 +fi + # Users may have these set, pointing the system Ruby # at non-system gem paths unset GEM_HOME @@ -47,9 +60,14 @@ then unset HOMEBREW_RUBY_PATH fi +if [ "$(uname -s)" = "Darwin" ] +then + HOMEBREW_OSX="1" +fi + if [ -z "$HOMEBREW_RUBY_PATH" ] then - if [ "$(uname -s)" = "Darwin" ] + if [ -n "$HOMEBREW_OSX" ] then HOMEBREW_RUBY_PATH="/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby" else @@ -64,6 +82,42 @@ export HOMEBREW_REPOSITORY export HOMEBREW_LIBRARY export HOMEBREW_CELLAR +if [ -n "$HOMEBREW_OSX" ] +then + if [ "$('xcode-select' --print-path)" = "/" ] + then + cat >&2 <&2 <&2 + exit 1 +fi + for i in "$@" do if [[ "$1" = -v ]] @@ -72,10 +126,26 @@ do set -- "$@" -v fi [[ "$i" =~ ^- ]] && continue + HOMEBREW_COMMAND="$i" HOMEBREW_BASH_COMMAND="$HOMEBREW_LIBRARY/Homebrew/cmd/$i.sh" break done +if [ "$(id -u)" = "0" ] && [ "$(stat -f%u "$HOMEBREW_BREW_FILE")" != "0" ] +then + case "$HOMEBREW_COMMAND" in + install|reinstall|postinstall|link|pin|unpin|update|update-bash|upgrade|create|migrate|tap|switch) + cat >&2 <