maintainers/scripts/sha-to-sri: fix file-descriptor leak

This commit is contained in:
nicoo 2024-09-13 08:00:12 +00:00
parent c425822e17
commit 915799a2b9

View File

@ -173,17 +173,18 @@ def atomicFileUpdate(target: Path):
raised, `new` (atomically) replaces the `target`, otherwise it is deleted. raised, `new` (atomically) replaces the `target`, otherwise it is deleted.
""" """
# That's mostly copied from noto-emoji.py, should DRY it out # That's mostly copied from noto-emoji.py, should DRY it out
from tempfile import mkstemp from tempfile import NamedTemporaryFile
fd, _p = mkstemp(
dir = target.parent,
prefix = target.name,
)
tmpPath = Path(_p)
try: try:
with target.open() as original: with target.open() as original:
with tmpPath.open("w") as new: with NamedTemporaryFile(
dir = target.parent,
prefix = target.stem,
suffix = target.suffix,
delete = False,
mode="w", # otherwise the file would be opened in binary mode by default
) as new:
tmpPath = Path(new.name)
yield (original, new) yield (original, new)
tmpPath.replace(target) tmpPath.replace(target)