From 2d41fe8febde65dabe4c8626de134e3d6a2b75f5 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Tue, 20 Feb 2024 17:59:22 +0100 Subject: [PATCH 1/2] Support `Tap#formula_files` when using API. --- Library/Homebrew/tap.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index b55c274fff..6dc8c02ad4 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -1146,9 +1146,9 @@ class CoreTap < AbstractCoreTap # @private sig { returns(T::Array[Pathname]) } def formula_files - return super if Homebrew::EnvConfig.no_install_from_api? || installed? + return super if Homebrew::EnvConfig.no_install_from_api? - raise TapUnavailableError, name + formula_files_by_name.values end # @private From 771193c80a21b8901df2de52618c8a18a3cac893 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Tue, 20 Feb 2024 19:36:57 +0100 Subject: [PATCH 2/2] Ensure `readall` runs without API. --- Library/Homebrew/cmd/readall.rb | 44 +++++++++++++++++---------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/Library/Homebrew/cmd/readall.rb b/Library/Homebrew/cmd/readall.rb index a352ca0cf3..e20db93e36 100644 --- a/Library/Homebrew/cmd/readall.rb +++ b/Library/Homebrew/cmd/readall.rb @@ -38,31 +38,33 @@ module Homebrew def readall args = readall_args.parse - if args.syntax? && args.no_named? - scan_files = "#{HOMEBREW_LIBRARY_PATH}/**/*.rb" - ruby_files = Dir.glob(scan_files).grep_v(%r{/(vendor)/}) + Homebrew.with_no_api_env do + if args.syntax? && args.no_named? + scan_files = "#{HOMEBREW_LIBRARY_PATH}/**/*.rb" + ruby_files = Dir.glob(scan_files).grep_v(%r{/(vendor)/}) - Homebrew.failed = true unless Readall.valid_ruby_syntax?(ruby_files) - end - - options = { - aliases: args.aliases?, - no_simulate: args.no_simulate?, - } - options[:os_arch_combinations] = args.os_arch_combinations if args.os || args.arch - - taps = if args.no_named? - if !args.eval_all? && !Homebrew::EnvConfig.eval_all? - raise UsageError, "`brew readall` needs a tap or `--eval-all` passed or `HOMEBREW_EVAL_ALL` set!" + Homebrew.failed = true unless Readall.valid_ruby_syntax?(ruby_files) end - Tap - else - args.named.to_installed_taps - end + options = { + aliases: args.aliases?, + no_simulate: args.no_simulate?, + } + options[:os_arch_combinations] = args.os_arch_combinations if args.os || args.arch - taps.each do |tap| - Homebrew.failed = true unless Readall.valid_tap?(tap, **options) + taps = if args.no_named? + if !args.eval_all? && !Homebrew::EnvConfig.eval_all? + raise UsageError, "`brew readall` needs a tap or `--eval-all` passed or `HOMEBREW_EVAL_ALL` set!" + end + + Tap.select(&:installed?) + else + args.named.to_installed_taps + end + + taps.each do |tap| + Homebrew.failed = true unless Readall.valid_tap?(tap, **options) + end end end end