Ensure permissions are correct when using atomic writes

This commit is contained in:
Kovid Goyal 2022-12-01 14:04:52 +05:30
parent e555d963b1
commit 0a985134e2
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -121,6 +121,15 @@ func (self *Output) commit() {
} else { } else {
self.dest.Close() self.dest.Close()
if !self.is_stream { if !self.is_stream {
f, err := os.Create(self.arg)
if err == nil {
fi, err := f.Stat()
if err == nil {
self.dest.Chmod(fi.Mode().Perm())
}
f.Close()
os.Remove(f.Name())
}
self.err = os.Rename(self.dest.Name(), self.arg) self.err = os.Rename(self.dest.Name(), self.arg)
if self.err != nil { if self.err != nil {
os.Remove(self.dest.Name()) os.Remove(self.dest.Name())