diff --git a/flake.nix b/flake.nix index 63cd862..1daa87e 100644 --- a/flake.nix +++ b/flake.nix @@ -144,24 +144,25 @@ zfs gnugrep gawk + coreutils ]; - text = '' - #!/bin/sh - zfs get mounted | grep yes | awk '{print $1}' | while read -r i; do zfs get mountpoint "$i" | awk 'FNR==2 {print $3}'; done - ''; + text = + let + lib = nixpkgs.lib; + in + '' + #!/bin/sh + zfs get mounted | grep yes | awk '{print $1}' | while read -r i; do zfs get mountpoint "$i" | awk 'FNR==2 {print $3}'; done | grep -c '${lib.strings.concatStringsSep "\|" dirs}' | grep -Fq ${toString (lib.length dirs)} + ''; }; + in { unitConfig.Wants = "zfs.target"; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; - ExecStart = - let - lib = nixpkgs.lib; - contains_cmd = "${lib.getExe pkgs.gnugrep} '${lib.strings.concatStringsSep "\|" dirs}' | ${pkgs.coreutils}/bin/wc -l | ${lib.getExe pkgs.gnugrep} -q ${toString (lib.length dirs)}"; - in - "${lib.getExe pkgs.bash} -c \"${lib.getExe zfslistmounted} | ${contains_cmd}\""; + ExecStart = nixpkgs.lib.getExe zfslistmounted; }; };