]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Move condition check into copy_ephemeral()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sat, 16 Mar 2024 19:35:10 +0000 (20:35 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 17 Mar 2024 08:26:05 +0000 (09:26 +0100)
mkosi/qemu.py
mkosi/vmspawn.py

index 218931fa7cb4da05c54b7990d988d379da1ae2b2..020952d3cddd720024e28e9a9c5745682197d949 100644 (file)
@@ -404,6 +404,12 @@ def vsock_notify_handler() -> Iterator[tuple[str, dict[str, str]]]:
 
 @contextlib.contextmanager
 def copy_ephemeral(config: Config, src: Path) -> Iterator[Path]:
+    if not config.ephemeral or config.output_format in (OutputFormat.cpio, OutputFormat.uki):
+        with flock_or_die(src):
+            yield src
+
+        return
+
     src = src.resolve()
     # tempfile doesn't provide an API to get a random filename in an arbitrary directory so we do this
     # instead. Limit the size to 16 characters as the output name might be used in a unix socket path by vmspawn and
@@ -716,12 +722,10 @@ def run_qemu(args: Args, config: Config) -> None:
                 sandbox=config.sandbox(mounts=[Mount(fname.parent, fname.parent), Mount(src, src, ro=True)]),
             )
             stack.callback(lambda: fname.unlink())
-        elif config.ephemeral and config.output_format not in (OutputFormat.cpio, OutputFormat.uki):
+        else:
             fname = stack.enter_context(
                 copy_ephemeral(config, config.output_dir_or_cwd() / config.output_with_compression)
             )
-        else:
-            fname = stack.enter_context(flock_or_die(config.output_dir_or_cwd() / config.output_with_compression))
 
         apply_runtime_size(config, fname)
 
index d1fa71375fcb2679e90110d68ccdaea039857b6b..16f49cf7f1048a86823987c5468010e9daee8db4 100644 (file)
@@ -21,9 +21,7 @@ from mkosi.qemu import (
     find_ovmf_firmware,
 )
 from mkosi.run import run
-from mkosi.sandbox import Mount
 from mkosi.types import PathString
-from mkosi.util import flock_or_die
 
 
 def run_vmspawn(args: Args, config: Config) -> None:
@@ -79,10 +77,7 @@ def run_vmspawn(args: Args, config: Config) -> None:
     cmdline += [f"--set-credential={k}:{v}" for k, v in config.credentials.items()]
 
     with contextlib.ExitStack() as stack:
-        if config.ephemeral:
-            fname = stack.enter_context(copy_ephemeral(config, config.output_dir_or_cwd() / config.output))
-        else:
-            fname = stack.enter_context(flock_or_die(config.output_dir_or_cwd() / config.output))
+        fname = stack.enter_context(copy_ephemeral(config, config.output_dir_or_cwd() / config.output))
 
         apply_runtime_size(config, fname)