From 6f3f2d73176d8031430ca38659001b690f0be725 Mon Sep 17 00:00:00 2001 From: Ruoyu Zhong Date: Tue, 12 Aug 2025 22:45:45 +0800 Subject: [PATCH] formula: improve log filename handling Fixes https://github.com/Homebrew/brew/commit/718b82560a3c9c61391dddf582d28b648c143e2a#commitcomment-163850325. --- Library/Homebrew/formula.rb | 6 ++---- Library/Homebrew/shims/super/cc | 3 ++- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 80f292bfd9..40ae700a60 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -3067,14 +3067,12 @@ class Formula @exec_count ||= T.let(0, T.nilable(Integer)) @exec_count += 1 - logfn = format("#{logs}/#{active_log_prefix}%02d.%s", + logfn = format("#{logs}/#{active_log_prefix}%02d.%s.log", exec_count: @exec_count, cmd_base: File.basename(cmd).split.first) logs.mkpath - # Append `.log` here instead of in the definition of `logfn` to avoid - # log files named `xy.cmake.log.cc.log` from `shims/super/cc`. - File.open("#{logfn}.log", "w") do |log| + File.open(logfn, "w") do |log| log.puts Time.now, "", cmd, args, "" log.flush diff --git a/Library/Homebrew/shims/super/cc b/Library/Homebrew/shims/super/cc index ce8505b08f..c57b2f96f7 100755 --- a/Library/Homebrew/shims/super/cc +++ b/Library/Homebrew/shims/super/cc @@ -524,6 +524,7 @@ end def log(basename, argv, tool, args) return unless ENV.key?("HOMEBREW_CC_LOG_PATH") + logfn = "#{ENV["HOMEBREW_CC_LOG_PATH"].delete_suffix(".log")}.cc.log" adds = args - argv dels = argv - args @@ -532,7 +533,7 @@ def log(basename, argv, tool, args) s << "superenv removed: #{dels.join(" ")}\n" unless dels.empty? s << "superenv added: #{adds.join(" ")}\n" unless adds.empty? s << "superenv executed: #{tool} #{args.join(" ")}\n\n" - File.open("#{ENV["HOMEBREW_CC_LOG_PATH"]}.cc.log", "a+") { |f| f.write(s) } + File.open(logfn, "a+") { |f| f.write(s) } end def remove_superbin_from_path(paths)