From 4607f2b497c1ab7ef2155ee87e7acb5f09edf0f7 Mon Sep 17 00:00:00 2001 From: Musab Erdem Date: Fri, 26 Dec 2025 16:13:47 +0100 Subject: [PATCH] Fix no permission --- updater/update.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/updater/update.py b/updater/update.py index 305fbef..ab7eb17 100644 --- a/updater/update.py +++ b/updater/update.py @@ -149,13 +149,20 @@ def month_add(year: int, month: int, delta: int) -> tuple[int, int]: m = (m % 12) + 1 return y, m -def atomic_write(path: str, content: str): +def atomic_write(path: str, content: str, mode: int = 0o644): os.makedirs(os.path.dirname(path), exist_ok=True) - fd, tmp_path = tempfile.mkstemp(prefix=os.path.basename(path) + ".", dir=os.path.dirname(path)) + + fd, tmp_path = tempfile.mkstemp( + prefix=os.path.basename(path) + ".", + dir=os.path.dirname(path), + ) try: with os.fdopen(fd, "w", encoding="utf-8", newline="") as f: f.write(content) + + os.chmod(tmp_path, mode) os.replace(tmp_path, path) + os.chmod(path, mode) finally: try: if os.path.exists(tmp_path):