From fe046cd35f0b8bfc4e82b392b483e559a66c691e Mon Sep 17 00:00:00 2001 From: Steven Noorbergen Date: Mon, 23 Dec 2024 15:15:31 +0100 Subject: [PATCH] Fix: Don't write snippet files if their content doesn't change, as this creates endless rebuilds --- scripts/generate-snippets.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/scripts/generate-snippets.py b/scripts/generate-snippets.py index 6a77ec0..0d775b5 100644 --- a/scripts/generate-snippets.py +++ b/scripts/generate-snippets.py @@ -41,6 +41,18 @@ def path_to_snippet(fname): return f"snippets/{fname[len(snipets_path) + 1:]}" +def write_if_changed(fname, content): + try: + with open(fname, "r") as f: + old_content = f.read() + except FileNotFoundError: + old_content = None + + if old_content != content: + with open(fname, "w") as f: + f.write(content) + + # Process a folder and generate combined markdown files based on the snippets found. def process_folder(path, files): found = {} @@ -65,8 +77,7 @@ def process_folder(path, files): ] ) content.append("") - with open(fname, "w") as f: - f.writelines("\n".join(content)) + write_if_changed(fname, "\n".join(content)) def generate():