Merge pull request #5451 from MikeMcQuaid/update-preinstall-exec

brew.sh: make update --preinstall exec.
This commit is contained in:
Mike McQuaid 2018-12-30 13:40:14 +00:00 committed by GitHub
commit e6f17f2316
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 28 deletions

View File

@ -395,12 +395,15 @@ update-preinstall-timer() {
update-preinstall() {
[[ -z "$HOMEBREW_HELP" ]] || return
[[ -z "$HOMEBREW_NO_AUTO_UPDATE" ]] || return
[[ -z "$HOMEBREW_AUTO_UPDATING" ]] || return
[[ -z "$HOMEBREW_AUTO_UPDATE_CHECKED" ]] || return
[[ -z "$HOMEBREW_UPDATE_PREINSTALL" ]] || return
if [[ "$HOMEBREW_COMMAND" = "install" || "$HOMEBREW_COMMAND" = "upgrade" || "$HOMEBREW_COMMAND" = "tap" ||
"$HOMEBREW_CASK_COMMAND" = "install" || "$HOMEBREW_CASK_COMMAND" = "upgrade" ]]
then
export HOMEBREW_AUTO_UPDATING="1"
if [[ -z "$HOMEBREW_VERBOSE" ]]
then
update-preinstall-timer &
@ -417,17 +420,14 @@ update-preinstall() {
kill "$timer_pid" 2>/dev/null
wait "$timer_pid" 2>/dev/null
fi
fi
# If brew update --preinstall did a migration then export the new locations.
if [[ "$HOMEBREW_REPOSITORY" = "/usr/local" &&
! -d "$HOMEBREW_REPOSITORY/.git" &&
-d "/usr/local/Homebrew/.git" ]]
then
HOMEBREW_REPOSITORY="/usr/local/Homebrew"
HOMEBREW_LIBRARY="$HOMEBREW_REPOSITORY/Library"
export HOMEBREW_REPOSITORY
export HOMEBREW_LIBRARY
unset HOMEBREW_AUTO_UPDATING
# If we've checked for updates, we don't need to check again.
export HOMEBREW_AUTO_UPDATE_CHECKED="1"
# exec a new process to set any new environment variables.
exec "$HOMEBREW_BREW_FILE" "$@"
fi
# If we've checked for updates, we don't need to check again.
@ -444,7 +444,7 @@ then
# Don't need shellcheck to follow this `source`.
# shellcheck disable=SC1090
source "$HOMEBREW_BASH_COMMAND"
{ update-preinstall; "homebrew-$HOMEBREW_COMMAND" "$@"; exit $?; }
{ update-preinstall "$@"; "homebrew-$HOMEBREW_COMMAND" "$@"; exit $?; }
else
# Don't need shellcheck to follow this `source`.
# shellcheck disable=SC1090
@ -453,5 +453,5 @@ else
# Unshift command back into argument list (unless argument list was empty).
[[ "$HOMEBREW_ARG_COUNT" -gt 0 ]] && set -- "$HOMEBREW_COMMAND" "$@"
{ update-preinstall; exec "$HOMEBREW_RUBY_PATH" $HOMEBREW_RUBY_WARNINGS "$HOMEBREW_LIBRARY/Homebrew/brew.rb" "$@"; }
{ update-preinstall "$@"; exec "$HOMEBREW_RUBY_PATH" $HOMEBREW_RUBY_WARNINGS "$HOMEBREW_LIBRARY/Homebrew/brew.rb" "$@"; }
fi

View File

@ -36,13 +36,11 @@ HOMEBREW_CACHE = Pathname.new(ENV["HOMEBREW_CACHE"])
HOMEBREW_CACHE_FORMULA = HOMEBREW_CACHE/"Formula"
# Where build, postinstall, and test logs of formulae are written to
HOMEBREW_LOGS = Pathname.new(ENV["HOMEBREW_LOGS"] || "~/Library/Logs/Homebrew/").expand_path
HOMEBREW_LOGS = Pathname.new(ENV["HOMEBREW_LOGS"]).expand_path
# Must use `/tmp` instead of `TMPDIR` because long paths break Unix domain sockets
HOMEBREW_TEMP = begin
# /tmp fallback is here for people auto-updating from a version where
# HOMEBREW_TEMP isn't set.
tmp = Pathname.new(ENV["HOMEBREW_TEMP"] || "/tmp")
tmp = Pathname.new(ENV["HOMEBREW_TEMP"])
tmp.mkpath unless tmp.exist?
tmp.realpath
end

View File

@ -50,18 +50,8 @@ HOMEBREW_USER_AGENT_FAKE_SAFARI =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 " \
"(KHTML, like Gecko) Version/10.0.3 Safari/602.4.8".freeze
# Bintray fallback is here for people auto-updating from a version where
# `HOMEBREW_BOTTLE_DEFAULT_DOMAIN` isn't set.
HOMEBREW_BOTTLE_DEFAULT_DOMAIN = if ENV["HOMEBREW_BOTTLE_DEFAULT_DOMAIN"]
ENV["HOMEBREW_BOTTLE_DEFAULT_DOMAIN"]
elsif OS.mac? || ENV["HOMEBREW_FORCE_HOMEBREW_ON_LINUX"]
"https://homebrew.bintray.com".freeze
else
"https://linuxbrew.bintray.com".freeze
end
HOMEBREW_BOTTLE_DOMAIN = ENV["HOMEBREW_BOTTLE_DOMAIN"] ||
HOMEBREW_BOTTLE_DEFAULT_DOMAIN
HOMEBREW_BOTTLE_DEFAULT_DOMAIN = ENV["HOMEBREW_BOTTLE_DEFAULT_DOMAIN"]
HOMEBREW_BOTTLE_DOMAIN = ENV["HOMEBREW_BOTTLE_DOMAIN"]
require "fileutils"
require "os"