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

View File

@ -36,13 +36,11 @@ HOMEBREW_CACHE = Pathname.new(ENV["HOMEBREW_CACHE"])
HOMEBREW_CACHE_FORMULA = HOMEBREW_CACHE/"Formula" HOMEBREW_CACHE_FORMULA = HOMEBREW_CACHE/"Formula"
# Where build, postinstall, and test logs of formulae are written to # 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 # Must use `/tmp` instead of `TMPDIR` because long paths break Unix domain sockets
HOMEBREW_TEMP = begin HOMEBREW_TEMP = begin
# /tmp fallback is here for people auto-updating from a version where tmp = Pathname.new(ENV["HOMEBREW_TEMP"])
# HOMEBREW_TEMP isn't set.
tmp = Pathname.new(ENV["HOMEBREW_TEMP"] || "/tmp")
tmp.mkpath unless tmp.exist? tmp.mkpath unless tmp.exist?
tmp.realpath tmp.realpath
end 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 " \ "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 "(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 = ENV["HOMEBREW_BOTTLE_DEFAULT_DOMAIN"]
# `HOMEBREW_BOTTLE_DEFAULT_DOMAIN` isn't set. HOMEBREW_BOTTLE_DOMAIN = ENV["HOMEBREW_BOTTLE_DOMAIN"]
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
require "fileutils" require "fileutils"
require "os" require "os"