From 423fb9573bf6c7516536b7c14cc488312166550d Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Fri, 16 Aug 2019 19:24:20 +1000 Subject: [PATCH] confserver: Fix NamedTemporaryFile use on Windows Can't have the file open twice, so need to close and delete after reopening. --- tools/kconfig_new/confserver.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/kconfig_new/confserver.py b/tools/kconfig_new/confserver.py index 2e0d24ad7e..cddb572c92 100755 --- a/tools/kconfig_new/confserver.py +++ b/tools/kconfig_new/confserver.py @@ -74,12 +74,14 @@ def run_server(kconfig, sdkconfig, sdkconfig_rename, default_version=MAX_PROTOCO sdkconfig_renames = [sdkconfig_rename] if sdkconfig_rename else [] sdkconfig_renames += os.environ.get("COMPONENT_SDKCONFIG_RENAMES", "").split() deprecated_options = confgen.DeprecatedOptions(config.config_prefix, path_rename_files=sdkconfig_renames) - with tempfile.NamedTemporaryFile(mode='w+b') as f_o: + f_o = tempfile.NamedTemporaryFile(mode='w+b', delete=False) + try: with open(sdkconfig, mode='rb') as f_i: f_o.write(f_i.read()) - f_o.flush() - f_o.seek(0) + f_o.close() # need to close as DeprecatedOptions will reopen, and Windows only allows one open file deprecated_options.replace(sdkconfig_in=f_o.name, sdkconfig_out=sdkconfig) + finally: + os.unlink(f_o.name) config.load_config(sdkconfig) print("Server running, waiting for requests on stdin...", file=sys.stderr) -- 2.40.0