simplify mountpoint script

This commit is contained in:
Simon Gardling 2025-07-10 09:19:35 -07:00
parent 888fbc3649
commit cc181d1332
Signed by: titaniumtown
GPG Key ID: 9AB28AC10ECE533D

View File

@ -136,7 +136,22 @@
}; };
serviceMountDeps = serviceName: dirs: pkgs: { serviceMountDeps = serviceName: dirs: pkgs: {
systemd.services."${serviceName}_mounts" = { systemd.services."${serviceName}_mounts" =
let
zfslistmounted = pkgs.writeShellApplication {
name = "zfslistmounted";
runtimeInputs = with pkgs; [
zfs
gnugrep
gawk
];
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
'';
};
in
{
unitConfig.Wants = "zfs.target"; unitConfig.Wants = "zfs.target";
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
@ -144,8 +159,9 @@
ExecStart = ExecStart =
let let
lib = nixpkgs.lib; 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 in
"${lib.getExe pkgs.bash} -c \"${lib.getExe pkgs.zfs} get mounted | ${lib.getExe pkgs.gnugrep} yes | ${lib.getExe pkgs.gawk} '{print $1}' | while read i; do ${lib.getExe pkgs.zfs} get mountpoint \$i | ${lib.getExe pkgs.gawk} 'FNR==2 {print \$3}'; done | ${lib.getExe pkgs.gnugrep} '${lib.strings.concatStringsSep "\|" dirs}' | ${pkgs.coreutils}/bin/wc -l | ${lib.getExe pkgs.gnugrep} -q ${toString (lib.length dirs)}\""; "${lib.getExe pkgs.bash} -c \"${lib.getExe zfslistmounted} | ${contains_cmd}\"";
}; };
}; };