aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhiming Wang2016-10-30 20:11:45 -0400
committerZhiming Wang2016-11-02 22:37:08 -0400
commit0ca697ad2f5e937f5cd613b1a17a90b126a1a00b (patch)
treea2d988cf302f8374c623b2036639eb5054969bcb
parent8d5df2ea8769f48fc8b9c145abc8fc1329a650cb (diff)
downloadbrew-0ca697ad2f5e937f5cd613b1a17a90b126a1a00b.tar.bz2
brew.sh: communicate when autoupdate runs for long
This will ease user anxiety when `brew install foo' is typed but nothing seems to happen.
-rw-r--r--Library/Homebrew/brew.sh19
1 files changed, 19 insertions, 0 deletions
diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh
index f3bb605bb..8a6ceff8f 100644
--- a/Library/Homebrew/brew.sh
+++ b/Library/Homebrew/brew.sh
@@ -296,6 +296,13 @@ source "$HOMEBREW_LIBRARY/Homebrew/utils/analytics.sh"
setup-analytics
report-analytics-screenview-command
+# Let user know we're still updating Homebrew if brew update --preinstall
+# exceeds 3 seconds.
+update-preinstall-timer() {
+ sleep 3
+ echo 'Updating Homebrew...' >&2
+}
+
update-preinstall() {
[[ -z "$HOMEBREW_HELP" ]] || return
[[ -z "$HOMEBREW_NO_AUTO_UPDATE" ]] || return
@@ -306,7 +313,19 @@ update-preinstall() {
if [[ "$HOMEBREW_COMMAND" = "install" || "$HOMEBREW_COMMAND" = "upgrade" || "$HOMEBREW_COMMAND" = "tap" ]]
then
+ if [[ -z "$HOMEBREW_VERBOSE" ]]
+ then
+ update-preinstall-timer &
+ timer_pid=$!
+ fi
+
brew update --preinstall
+
+ if [[ -n "$timer_pid" ]]
+ then
+ 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.