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