From 7004d3de0dd2d39ec44ccfc6bc481053555ea4d3 Mon Sep 17 00:00:00 2001 From: Jack Nagel <jacknagel@gmail.com> Date: Tue, 10 Feb 2015 20:27:26 -0500 Subject: [PATCH] Extract logging from the command class --- Library/ENV/4.3/cc | 58 +++++++++++++--------------------------------- 1 file changed, 16 insertions(+), 42 deletions(-) diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc index 2fc75cb629..26649d7beb 100755 --- a/Library/ENV/4.3/cc +++ b/Library/ENV/4.3/cc @@ -3,27 +3,6 @@ $:.unshift Dir["/System/Library/Frameworks/Ruby.framework/Versions/Current/usr/lib/ruby/{1.8,2.0.0}"].first require 'pathname' require 'set' -require 'stringio' - -class Logger - def initialize - @io = StringIO.new - end - - def puts(*args) - @io.puts(*args) - end - - def log! - return unless ENV.key? 'HOMEBREW_CC_LOG_PATH' - path = "#{ENV['HOMEBREW_CC_LOG_PATH']}.cc" - - puts - File.open(path, File::WRONLY | File::APPEND | File::CREAT) { |f| f.write(@io.string) } - end -end - -LOGGER = Logger.new class Cmd attr_reader :config, :prefix, :cellar, :tmpdir, :sysroot @@ -103,7 +82,7 @@ class Cmd end end - allflags = case mode + case mode when :ccld cflags + args + cppflags + ldflags when :cxxld @@ -119,8 +98,6 @@ class Cmd when :ld ldflags + args end - make_fuss(allflags) - allflags end def refurbished_args @@ -260,20 +237,6 @@ class Cmd %W{#{sysroot}/usr/lib /usr/local/lib} end - def make_fuss args - return unless make_fuss? - - dels = @args - args - adds = args - @args - - LOGGER.puts "superenv removed: #{dels*' '}" unless dels.empty? - LOGGER.puts "superenv added: #{adds*' '}" unless adds.empty? - end - - def make_fuss? - refurbish_args? && !configure? - end - def configure? # configure scripts generated with autoconf 2.61 or later export as_nl ENV.key? 'as_nl' @@ -321,6 +284,20 @@ class Cmd end end +def log(basename, argv, tool, args) + return unless ENV.key?("HOMEBREW_CC_LOG_PATH") + + adds = args - argv + dels = argv - args + + s = "" + s << "#{basename} called with: #{argv.join(" ")}\n" + 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", "a+") { |f| f.write(s) } +end + if __FILE__ == $PROGRAM_NAME ##################################################################### sanity abort "The build-tool has reset ENV. --env=std required." unless ENV['HOMEBREW_BREW_FILE'] @@ -334,13 +311,10 @@ if __FILE__ == $PROGRAM_NAME dirname, basename = File.split($0) - LOGGER.puts "#{basename} called with: #{ARGV.join(" ")}" - cmd = Cmd.new(basename, ARGV) tool, args = cmd.tool, cmd.args - LOGGER.puts "superenv executed: #{tool} #{args.join(" ")}" - LOGGER.log! + log(basename, ARGV, tool, args) args << { :close_others => false } if RUBY_VERSION >= "2.0" exec "#{dirname}/xcrun", tool, *args -- GitLab