From: Daan De Meyer Date: Fri, 12 May 2023 08:13:31 +0000 (+0200) Subject: Check for btrfs before invoking run() X-Git-Tag: v15~162 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f9ed87ad1be59f79f6f5e2e486d6ecd396b4382;p=thirdparty%2Fmkosi.git Check for btrfs before invoking run() check= does not handle missing binaries so let's check explicitly before running btrfs. --- diff --git a/mkosi/btrfs.py b/mkosi/btrfs.py index 5a87c9a9b..4cc88d62e 100644 --- a/mkosi/btrfs.py +++ b/mkosi/btrfs.py @@ -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)