diff --git a/lib/rscons/environment.rb b/lib/rscons/environment.rb index 26a8e5a..8168378 100644 --- a/lib/rscons/environment.rb +++ b/lib/rscons/environment.rb @@ -39,6 +39,7 @@ module Rscons (@variables[:builders] || []).each do |builder| add_builder(builder) end + @variables[:echo] ||= :command end def add_builder(builder) @@ -117,9 +118,9 @@ module Rscons end end command = expand_varref.call(command.flatten).flatten - if @echo == :command + if @variables[:echo] == :command puts command.map { |c| c =~ /\s/ ? "'#{c}'" : c }.join(' ') - elsif @echo == :short + elsif @variables[:echo] == :short puts short_desc end system(*command) diff --git a/spec/build_tests_spec.rb b/spec/build_tests_spec.rb index 0016658..f403d86 100644 --- a/spec/build_tests_spec.rb +++ b/spec/build_tests_spec.rb @@ -13,7 +13,7 @@ describe Rscons do def build_testdir if File.exists?("build.rb") - system("ruby -I #{@owd}/lib -r rscons build.rb") + system("ruby -I #{@owd}/lib -r rscons build.rb > build.out") end end @@ -44,6 +44,14 @@ describe Rscons do `./simple`.should == "This is a simple C program\n" end + it 'prints commands as they are executed' do + test_dir('simple') + File.read('build.out').should == <