From 0e732d3917c013bad3404015d939e8f0fad35913 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Tue, 9 Feb 2021 20:23:16 +0000 Subject: [PATCH] cmd/update-report: report outdated count & suggest `brew upgrade` --- Library/Homebrew/cmd/update-report.rb | 23 ++++++++++++++++++++++- Library/Homebrew/utils.rb | 1 + 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 3e071d8371..c208d90dc1 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -136,8 +136,28 @@ module Homebrew DescriptionCacheStore.new(db) .update_from_report!(hub) end + + unless args.preinstall? + outdated_formulae = Formula.installed.count(&:outdated?) + outdated_casks = Cask::Caskroom.casks.count(&:outdated?) + msg = "" + if outdated_formulae.positive? + msg += "#{Tty.bold}#{outdated_formulae}#{Tty.reset} outdated #{"formula".pluralize(outdated_formulae)}" + end + if outdated_casks.positive? + msg += " and " if msg.present? + msg += "#{Tty.bold}#{outdated_casks}#{Tty.reset} outdated #{"cask".pluralize(outdated_casks)}" + end + if msg.present? + puts_stdout_or_stderr + puts_stdout_or_stderr <<~EOS + You have #{msg} installed. + You can update them with #{Tty.bold}brew upgrade#{Tty.reset}. + EOS + end + end end - puts if args.preinstall? + puts_stdout_or_stderr if args.preinstall? elsif !args.preinstall? && !ENV["HOMEBREW_UPDATE_FAILED"] puts_stdout_or_stderr "Already up-to-date." unless args.quiet? end @@ -161,6 +181,7 @@ module Homebrew return if new_repository_version.blank? + puts_stdout_or_stderr ohai_stdout_or_stderr "Homebrew was updated to version #{new_repository_version}" if new_repository_version.split(".").last == "0" puts_stdout_or_stderr <<~EOS diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 5d54123121..2c7d7a9fe3 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -121,6 +121,7 @@ module Kernel end def puts_stdout_or_stderr(*message) + message = "\n" if message.empty? if $stdout.tty? puts(message) else