diff options
author | Eric Butler <eric@level.com> | 2021-05-09 08:39:21 -0400 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-05-09 15:34:12 +0200 |
commit | 1a48609c6bcf7b041ef3811585e1c1ab58652394 (patch) | |
tree | b31eba06c8920ab0d694f132f4bdf708f44e6a3c | |
parent | e0fe38ea25eeb02b915a28e599bb7000584e264f (diff) | |
download | serenity-1a48609c6bcf7b041ef3811585e1c1ab58652394.zip |
Meta: Always try genext2fs as fallback to build disk image
If mounting disk image fails (e.g. fuse is not available on macos),
always try using genext2fs before giving up.
-rwxr-xr-x | Meta/build-image-qemu.sh | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/Meta/build-image-qemu.sh b/Meta/build-image-qemu.sh index bd783f10dd..9e0ae43143 100755 --- a/Meta/build-image-qemu.sh +++ b/Meta/build-image-qemu.sh @@ -87,25 +87,23 @@ printf "mounting filesystem... " mkdir -p mnt use_genext2fs=0 if [ "$(uname -s)" = "Darwin" ]; then - fuse-ext2 _disk_image mnt -o rw+,allow_other,uid=501,gid=20 || die "could not mount filesystem" - echo "done" + mount_cmd="fuse-ext2 _disk_image mnt -o rw+,allow_other,uid=501,gid=20" elif [ "$(uname -s)" = "OpenBSD" ]; then - mount -t ext2fs "/dev/${VND}i" mnt/ || die "could not mount filesystem" - echo "done" + mount_cmd="mount -t ext2fs "/dev/${VND}i" mnt/" elif [ "$(uname -s)" = "FreeBSD" ]; then - fuse-ext2 -o rw+,direct_io "/dev/${MD}" mnt/ || die "could not mount filesystem" - echo "done" + mount_cmd="fuse-ext2 -o rw+,direct_io "/dev/${MD}" mnt/" else - if ! mount _disk_image mnt/ ; then - if command -v genext2fs 1>/dev/null ; then - echo "mount failed but genext2fs exists, use it instead" - use_genext2fs=1 - else - die "could not mount filesystem and genext2fs is missing" - fi - else - echo "done" - fi + mount_cmd="mount _disk_image mnt/" +fi +if ! eval "$mount_cmd"; then + if command -v genext2fs 1>/dev/null ; then + echo "mount failed but genext2fs exists, use it instead" + use_genext2fs=1 + else + die "could not mount filesystem and genext2fs is missing" + fi +else + echo "done" fi cleanup() { |