lib/rspec/terraform/logging.rb in rspec-terraform-0.1.0.pre.40 vs lib/rspec/terraform/logging.rb in rspec-terraform-0.1.0.pre.41

- old
+ new

@@ -64,14 +64,35 @@ multi_io(log_devices) end def devices(opts) + streams = opts[:streams] + file_path = opts[:file_path] + stdout = opts[:stdout] + { - file: log_device(opts[:file_path] || File::NULL), - stdout: log_device(opts[:stdout] || $stdout), - stderr: log_device($stderr) + file: log_device(resolve_file_path(file_path, streams)), + stdout: log_device(resolved_stdout(stdout)), + stderr: log_device(resolved_stderr) } + end + + def resolve_file_path(file_path, streams) + resolved_file_path = File::NULL + if streams.include?(:file) && file_path + FileUtils.mkdir_p(File.dirname(file_path)) + resolved_file_path = file_path + end + resolved_file_path + end + + def resolved_stdout(stdout) + stdout || $stdout + end + + def resolved_stderr + $stderr end def log_device(io) Logger::LogDevice.new(io) end