From a10e80318fe056312d9270c5f873bbe7f06a95cd Mon Sep 17 00:00:00 2001 From: Thibaut Broggi Date: Thu, 26 May 2016 15:59:40 +0200 Subject: [PATCH] atomicWrite function now preserve file permissions --- src/util/helper.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/util/helper.py b/src/util/helper.py index 2bdcb1b5..c46a9042 100644 --- a/src/util/helper.py +++ b/src/util/helper.py @@ -1,4 +1,5 @@ import os +import stat import socket import struct import re @@ -10,6 +11,7 @@ import base64 def atomicWrite(dest, content, mode="w"): try: + permissions = stat.S_IMODE(os.lstat(dest).st_mode) with open(dest + "-new", mode) as f: f.write(content) f.flush() @@ -18,6 +20,7 @@ def atomicWrite(dest, content, mode="w"): os.rename(dest + "-old", dest + "-old-%s" % time.time()) os.rename(dest, dest + "-old") os.rename(dest + "-new", dest) + os.chmod(dest, permissions) os.unlink(dest + "-old") return True except Exception, err: