lib/autoproj/ops/atomic_write.rb in autoproj-2.14.0 vs lib/autoproj/ops/atomic_write.rb in autoproj-2.15.0

- old
+ new

@@ -1,27 +1,28 @@ module Autoproj module Ops # Shamelessly stolen from ActiveSupport def self.atomic_write(file_name, temp_dir = Dir.tmpdir) - require 'tempfile' unless defined?(Tempfile) - require 'fileutils' unless defined?(FileUtils) - + require "tempfile" unless defined?(Tempfile) + require "fileutils" unless defined?(FileUtils) + temp_file = Tempfile.new(File.basename(file_name), temp_dir) yield temp_file temp_file.flush begin temp_file.fsync rescue NotImplementedError end temp_file.close - + begin # Get original file permissions old_stat = File.stat(file_name) rescue Errno::ENOENT # No old permissions, write a temp file to determine the defaults check_name = File.join( - File.dirname(file_name), ".permissions_check.#{Thread.current.object_id}.#{Process.pid}.#{rand(1000000)}") - File.open(check_name, "w") { } + File.dirname(file_name), ".permissions_check.#{Thread.current.object_id}.#{Process.pid}.#{rand(1000000)}" + ) + File.open(check_name, "w") {} old_stat = File.stat(check_name) File.unlink(check_name) end # Overwrite original file with temp file