From 8c35011d0aa242e9f6271d3a66ae6924d52bbed6 Mon Sep 17 00:00:00 2001
From: Nick Brassel <nick@tzarc.org>
Date: Wed, 24 Jul 2024 15:16:51 +1000
Subject: [CLI] Only generate files if contents change. (#24038)

Don't overwrite if the content doesn't change.
---
 lib/python/qmk/commands.py | 6 ++++++
 1 file changed, 6 insertions(+)

(limited to 'lib')

diff --git a/lib/python/qmk/commands.py b/lib/python/qmk/commands.py
index 3db8353bfd..df6ed6b88a 100644
--- a/lib/python/qmk/commands.py
+++ b/lib/python/qmk/commands.py
@@ -101,6 +101,12 @@ def dump_lines(output_file, lines, quiet=True):
     if output_file and output_file.name != '-':
         output_file.parent.mkdir(parents=True, exist_ok=True)
         if output_file.exists():
+            with open(output_file, 'r', encoding='utf-8', newline='\n') as f:
+                existing = f.read()
+            if existing == generated:
+                if not quiet:
+                    cli.log.info(f'No changes to {output_file.name}.')
+                return
             output_file.replace(output_file.parent / (output_file.name + '.bak'))
         output_file.write_text(generated, encoding='utf-8')
 
-- 
cgit v1.2.3