From 7de6c6063119a7cef27c6bd4c88f2c5ac4cbc064 Mon Sep 17 00:00:00 2001 From: mj0x0 <93428389+mj0x0@users.noreply.github.com> Date: Sat, 17 Jan 2026 15:11:13 +0200 Subject: [PATCH] theme: ensure atomic writes for configuration files (#76) * fix: ensure atomic writes for configuration files * requested changes --- src/caelestia/utils/theme.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/caelestia/utils/theme.py b/src/caelestia/utils/theme.py index d8e648d..a137a57 100644 --- a/src/caelestia/utils/theme.py +++ b/src/caelestia/utils/theme.py @@ -2,6 +2,8 @@ import json import re import subprocess from pathlib import Path +import tempfile +import shutil from caelestia.utils.colour import get_dynamic_colours from caelestia.utils.logging import log_exception @@ -101,8 +103,11 @@ def gen_sequences(colours: dict[str, str]) -> str: def write_file(path: Path, content: str) -> None: path.parent.mkdir(parents=True, exist_ok=True) - path.write_text(content) + with tempfile.NamedTemporaryFile("w") as f: + f.write(content) + f.flush() + shutil.move(f.name, path) @log_exception def apply_terms(sequences: str) -> None: