]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Check for btrfs before invoking run()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 12 May 2023 08:13:31 +0000 (10:13 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 12 May 2023 09:09:47 +0000 (11:09 +0200)
check= does not handle missing binaries so let's check explicitly
before running btrfs.

mkosi/btrfs.py

index 5a87c9a9b5cd046b62e24ad270c00903eaa03ea9..4cc88d62ec2a3e3ce0ec0f20a2b68da8c54b2df6 100644 (file)
@@ -11,7 +11,7 @@ def btrfs_maybe_make_subvolume(config: MkosiConfig, path: Path, mode: int) -> No
     if config.use_subvolumes == ConfigFeature.enabled and not shutil.which("btrfs"):
         die("Subvolumes requested but the btrfs command was not found")
 
-    if config.use_subvolumes != ConfigFeature.disabled:
+    if config.use_subvolumes != ConfigFeature.disabled and shutil.which("btrfs") is not None:
         result = run(["btrfs", "subvolume", "create", path],
                      check=config.use_subvolumes == ConfigFeature.enabled).returncode
     else:
@@ -38,8 +38,11 @@ def btrfs_maybe_snapshot_subvolume(config: MkosiConfig, src: Path, dst: Path) ->
     if dst.exists():
         dst.rmdir()
 
-    result = run(["btrfs", "subvolume", "snapshot", src, dst],
-                 check=config.use_subvolumes == ConfigFeature.enabled).returncode
+    if shutil.which("btrfs"):
+        result = run(["btrfs", "subvolume", "snapshot", src, dst],
+                    check=config.use_subvolumes == ConfigFeature.enabled).returncode
+    else:
+        result = 1
 
     if result != 0:
         copy_path(src, dst)