lib/autobuild/subcommand.rb in autobuild-1.10.0.rc3 vs lib/autobuild/subcommand.rb in autobuild-1.10.0.rc4
- old
+ new
@@ -232,11 +232,11 @@
if target.respond_to?(:working_directory)
options[:working_directory] ||= target.working_directory
end
- logname = File.join(logdir, "#{target_name.gsub(/[:]/,'_')}-#{phase.to_s.gsub(/[:]/,'_')}.log")
+ logname = File.join(logdir, "#{target_name.gsub(/[:]/,'_')}-#{phase.to_s.gsub(/[:]/,'_')}.log")
if !File.directory?(File.dirname(logname))
FileUtils.mkdir_p File.dirname(logname)
end
if Autobuild.verbose
@@ -268,11 +268,13 @@
logfile.puts
logfile.puts "#{Time.now}: running"
logfile.puts " #{command.join(" ")}"
logfile.puts "with environment:"
env.keys.sort.each do |key|
- logfile.puts " '#{key}'='#{env[key]}'"
+ if value = env[key]
+ logfile.puts " '#{key}'='#{value}'"
+ end
end
logfile.puts
logfile.puts "#{Time.now}: running"
logfile.puts " #{command.join(" ")}"
logfile.flush
@@ -300,17 +302,10 @@
cwrite.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
pid = fork do
begin
- env.each do |k, v|
- if v
- ENV[k] = v
- else
- ENV.delete(k)
- end
- end
if options[:working_directory] && (options[:working_directory] != Dir.pwd)
Dir.chdir(options[:working_directory])
end
logfile.puts "in directory #{Dir.pwd}"
@@ -334,10 +329,10 @@
end
if RUBY_VERSION >= "1.9"
command << Hash[:close_others => false]
end
- exec(*command)
+ exec(env, *command)
rescue Errno::ENOENT
cwrite.write([CONTROL_COMMAND_NOT_FOUND].pack('I'))
exit(100)
rescue Interrupt
cwrite.write([CONTROL_INTERRUPT].pack('I'))