From c481e71092678462dd2b8150cb8854e1e3d212e3 Mon Sep 17 00:00:00 2001 From: Ruoyu Zhong Date: Tue, 19 Aug 2025 14:27:05 +0800 Subject: [PATCH] cmd/update-report: rework --- Library/Homebrew/cmd/update-report.rb | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 76e65dba8c..0736e4cc41 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -869,9 +869,13 @@ class ReporterHub return if formulae.blank? ohai "New Formulae" - should_display_desc = !Homebrew::EnvConfig.no_install_from_api? || formulae.size <= 100 + should_display_descriptions = if Homebrew::EnvConfig.no_install_from_api? + formulae.size <= 100 + else + true + end formulae.each do |formula| - if should_display_desc && (desc = description(formula)) + if should_display_descriptions && (desc = description(formula)) puts "#{formula}: #{desc}" else puts formula @@ -883,18 +887,21 @@ class ReporterHub def dump_new_cask_report return unless Cask::Caskroom.any_casks_installed? - casks = select_formula_or_cask(:AC).sort.filter_map do |name| - name.split("/").last unless cask_installed?(name) - end + casks = select_formula_or_cask(:AC).sort.reject { |name| cask_installed?(name) } return if casks.blank? ohai "New Casks" - should_display_desc = !Homebrew::EnvConfig.no_install_from_api? || casks.size <= 100 + should_display_descriptions = if Homebrew::EnvConfig.no_install_from_api? + casks.size <= 100 + else + true + end casks.each do |cask| - if should_display_desc && (desc = cask_description(cask)) - puts "#{cask}: #{desc}" + cask_token = T.must(cask.split("/").last) + if should_display_descriptions && (desc = cask_description(cask)) + puts "#{cask_token}: #{desc}" else - puts cask + puts cask_token end end end @@ -960,6 +967,7 @@ class ReporterHub sig { params(formula: String).returns(T.nilable(String)) } def description(formula) if Homebrew::EnvConfig.no_install_from_api? + # Skip non-homebrew/core formulae for security. return if formula.include?("/") Formula[formula].desc&.presence @@ -973,6 +981,7 @@ class ReporterHub sig { params(cask: String).returns(T.nilable(String)) } def cask_description(cask) if Homebrew::EnvConfig.no_install_from_api? + # Skip non-homebrew/cask formulae for security. return if cask.include?("/") Cask::CaskLoader.load(cask).desc&.presence