Use FileUtils.mv instead of rename to copy in case of cross-device links
This commit is contained in:
parent
a5684dfa3c
commit
cc852e2580
|
@ -14,6 +14,7 @@ class File
|
|||
# end
|
||||
def self.atomic_write(file_name, temp_dir = Dir.tmpdir)
|
||||
require 'tempfile' unless defined?(Tempfile)
|
||||
require 'fileutils' unless defined?(FileUtils)
|
||||
|
||||
temp_file = Tempfile.new(basename(file_name), temp_dir)
|
||||
yield temp_file
|
||||
|
@ -31,7 +32,7 @@ class File
|
|||
end
|
||||
|
||||
# Overwrite original file with temp file
|
||||
rename(temp_file.path, file_name)
|
||||
FileUtils.mv(temp_file.path, file_name)
|
||||
|
||||
# Set correct permissions on new file
|
||||
chown(old_stat.uid, old_stat.gid, file_name)
|
||||
|
|
Loading…
Reference in New Issue