From 5d07953d538db39abacdf858a6de74468a72ed67 Mon Sep 17 00:00:00 2001 From: Shahzeb Siddiqui Date: Tue, 29 Aug 2023 11:13:42 -0400 Subject: [PATCH 1/2] make use of tempfile when writing stdout file temporary for 'buildtest build'. This will avoid issue where multiple buildtest build commands are running in parallel since previously it was writing to same file --- buildtest/main.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/buildtest/main.py b/buildtest/main.py index a58bbeafa..ef4298e05 100644 --- a/buildtest/main.py +++ b/buildtest/main.py @@ -2,6 +2,7 @@ import os import shutil +import tempfile import webbrowser from rich.traceback import install @@ -47,7 +48,6 @@ BUILDTEST_EXECUTOR_DIR, BUILDTEST_LOGFILE, BUILDTEST_USER_HOME, - VAR_DIR, console, ) from buildtest.exceptions import BuildTestError @@ -144,9 +144,9 @@ def main(): # buildtest build command if args.subcommands in ["build", "bd"]: - fname = os.path.join(VAR_DIR, "output.txt") - with Tee(fname): + stdout_file = tempfile.NamedTemporaryFile(delete=True, suffix=".txt") + with Tee(stdout_file.name): cmd = BuildTest( configuration=configuration, buildspecs=args.buildspec, @@ -183,7 +183,11 @@ def main(): if cmd.build_success(): build_history_dir = cmd.get_build_history_dir() - shutil.move(fname, os.path.join(build_history_dir, "output.txt")) + shutil.copyfile( + stdout_file.name, os.path.join(build_history_dir, "output.txt") + ) + + stdout_file.close() # buildtest build history if args.subcommands in ["history", "hy"]: From 6063bbae21f3c2daca93c867a4794bc6778e479f Mon Sep 17 00:00:00 2001 From: Shahzeb Siddiqui Date: Tue, 29 Aug 2023 11:25:29 -0400 Subject: [PATCH 2/2] applying black --- buildtest/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/buildtest/main.py b/buildtest/main.py index ef4298e05..550d8cc3d 100644 --- a/buildtest/main.py +++ b/buildtest/main.py @@ -144,7 +144,6 @@ def main(): # buildtest build command if args.subcommands in ["build", "bd"]: - stdout_file = tempfile.NamedTemporaryFile(delete=True, suffix=".txt") with Tee(stdout_file.name): cmd = BuildTest(