30 lines
781 B
Python
30 lines
781 B
Python
|
# Copyright (c) 2020 Nordic Semiconductor ASA
|
||
|
# SPDX-License-Identifier: Apache-2.0
|
||
|
|
||
|
"""
|
||
|
Helper functions used by gen_kconfig_rest.py and gen_devicetree_rest.py.
|
||
|
"""
|
||
|
|
||
|
import errno
|
||
|
|
||
|
def write_if_updated(path, s):
|
||
|
"""
|
||
|
Writes 's' as the contents of <out_dir>/<filename>, but only if it
|
||
|
differs from the current contents of the file. This avoids unnecessary
|
||
|
timestamp updates, which trigger documentation rebuilds.
|
||
|
|
||
|
Returns True if the file was updated, False otherwise.
|
||
|
"""
|
||
|
|
||
|
try:
|
||
|
with open(path, "r", encoding="utf-8") as f:
|
||
|
if s == f.read():
|
||
|
return False
|
||
|
except OSError as e:
|
||
|
if e.errno != errno.ENOENT:
|
||
|
raise
|
||
|
|
||
|
with open(path, "w", encoding="utf-8") as f:
|
||
|
f.write(s)
|
||
|
return True
|