From aeab8e8d19238cb6bbc2ad247aaa05009c9eb9a9 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Wed, 5 Sep 2012 16:41:35 -0500 Subject: [PATCH] Improve `brew --config` responsiveness Rather than build the whole output in a string, print each item as we go. This gives the illusion of improved responsiveness by delaying the expensive method calls until after the faster output. Signed-off-by: Jack Nagel --- Library/Homebrew/cmd/--config.rb | 51 ++++++++++++++------------------ 1 file changed, 22 insertions(+), 29 deletions(-) diff --git a/Library/Homebrew/cmd/--config.rb b/Library/Homebrew/cmd/--config.rb index 454d978bf7..ec04a29d6e 100644 --- a/Library/Homebrew/cmd/--config.rb +++ b/Library/Homebrew/cmd/--config.rb @@ -5,7 +5,7 @@ module Homebrew extend self if ARGV.first == '-1' dump_c1 else - puts config_s + dump_verbose_config end end @@ -100,9 +100,9 @@ module Homebrew extend self puts "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby:\n #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}" if RUBY_VERSION.to_f != 1.8 unless MacOS.compilers_standard? - puts "GCC-4.0: #{gcc_40 ? "build #{gcc_40}" : "N/A"}" - puts "GCC-4.2: #{gcc_42 ? "build #{gcc_42}" : "N/A"}" - puts "LLVM: #{llvm ? "build #{llvm}" : "N/A"}" + puts "GCC-4.0: build #{gcc_40}" if gcc_40 + puts "GCC-4.2: build #{gcc_42}" if gcc_42 + puts "LLVM-GCC: #{llvm ? "build #{llvm}" : "N/A"}" puts "Clang: #{clang ? "#{clang} build #{clang_build}" : "N/A"}" end @@ -112,31 +112,24 @@ module Homebrew extend self puts "X11: #{describe_x11}" end - def config_s - config_s = <<-EOS.undent - HOMEBREW_VERSION: #{HOMEBREW_VERSION} - HEAD: #{head} - HOMEBREW_PREFIX: #{HOMEBREW_PREFIX} - HOMEBREW_CELLAR: #{HOMEBREW_CELLAR} - #{hardware} - OS X: #{MACOS_FULL_VERSION}-#{kernel} - Xcode: #{describe_xcode} - EOS - - config_s << "CLT: #{describe_clt}\n" if MacOS::Xcode.version.to_f >= 4.3 - - config_s << <<-EOS.undent - GCC-4.0: #{gcc_40 ? "build #{gcc_40}" : "N/A"} - GCC-4.2: #{gcc_42 ? "build #{gcc_42}" : "N/A"} - LLVM: #{llvm ? "build #{llvm}" : "N/A"} - Clang: #{clang ? "#{clang} build #{clang_build}" : "N/A"} - MacPorts or Fink? #{macports_or_fink_installed?} - X11: #{describe_x11} - System Ruby: #{RUBY_VERSION}-#{RUBY_PATCHLEVEL} - Which Perl: #{describe_perl} - Which Python: #{describe_python} - Which Ruby: #{describe_ruby} - EOS + def dump_verbose_config + puts "HOMEBREW_VERSION: #{HOMEBREW_VERSION}" + puts "HEAD: #{head}" + puts "HOMEBREW_PREFIX: #{HOMEBREW_PREFIX}" + puts "HOMEBREW_CELLAR: #{HOMEBREW_CELLAR}" + puts hardware + puts "OS X: #{MACOS_FULL_VERSION}-#{kernel}" + puts "Xcode: #{describe_xcode}" + puts "CLT: #{describe_clt}\n" if MacOS::Xcode.version.to_f >= 4.3 + puts "GCC-4.0: build #{gcc_40}" if gcc_40 + puts "GCC-4.2: build #{gcc_42}" if gcc_42 + puts "LLVM-GCC: #{llvm ? "build #{llvm}" : "N/A"}" + puts "Clang: #{clang ? "#{clang} build #{clang_build}" : "N/A"}" + puts "MacPorts or Fink? #{macports_or_fink_installed?}" + puts "System Ruby: #{RUBY_VERSION}-#{RUBY_PATCHLEVEL}" + puts "Perl: #{describe_perl}" + puts "Python: #{describe_python}" + puts "Ruby: #{describe_ruby}" end def dump_c1