simplify mountpoint script
This commit is contained in:
parent
888fbc3649
commit
cc181d1332
20
flake.nix
20
flake.nix
@ -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}\"";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user