From e123b05ff4226fba308d0cffc259817fa3425d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Wed, 17 Aug 2022 15:54:28 +0200 Subject: use findmnt and mount with X-mount.mkdir This feels slightly cleaner and makes the code shorter. --- lib/default.nix | 5 ++--- tests/test.nix | 7 +++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/default.nix b/lib/default.nix index beba1b0..edc0062 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -88,9 +88,8 @@ let { mount.filesystem = q: x: { fs.${x.mountpoint} = '' - if ! [ "$(mount | sed -n 's:\([^ ]\+\) on /mnt${x.mountpoint} .*:\1:p')" = ${q.device} ]; then - mkdir -p /mnt${x.mountpoint} - mount ${q.device} /mnt${x.mountpoint} + if ! findmnt "${q.device}" "/mnt${x.mountpoint}" > /dev/null 2>&1; then + mount "${q.device}" "/mnt${x.mountpoint}" -o X-mount.mkdir fi ''; }; diff --git a/tests/test.nix b/tests/test.nix index fa89208..82976ba 100644 --- a/tests/test.nix +++ b/tests/test.nix @@ -85,6 +85,8 @@ let }; }; }; + tsp-create = pkgs.writeScript "create" ((pkgs.callPackage ../. {}).create disko-config); + tsp-mount = pkgs.writeScript "mount" ((pkgs.callPackage ../. {}).mount disko-config); in makeTest' { name = "disko"; @@ -105,8 +107,9 @@ in makeTest' { testScript = '' machine.succeed("echo 'secret' > /tmp/secret.key"); - machine.succeed("${pkgs.writeScript "create" ((pkgs.callPackage ../. {}).create disko-config)}"); - machine.succeed("${pkgs.writeScript "mount" ((pkgs.callPackage ../. {}).mount disko-config)}"); + machine.succeed("${tsp-create}"); + machine.succeed("${tsp-mount}"); + machine.succeed("${tsp-mount}"); # verify that the command is idempotent machine.succeed("test -b /dev/mapper/pool-raw"); ''; } -- cgit v1.2.3