37 lines
844 B
Nix
37 lines
844 B
Nix
{
|
|
config,
|
|
pkgs,
|
|
service_configs,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
grafanaUrl = "http://127.0.0.1:${toString service_configs.ports.private.grafana.port}";
|
|
|
|
script = pkgs.writeShellApplication {
|
|
name = "zfs-scrub-annotations";
|
|
runtimeInputs = with pkgs; [
|
|
curl
|
|
jq
|
|
coreutils
|
|
gnugrep
|
|
gnused
|
|
config.boot.zfs.package
|
|
];
|
|
text = builtins.readFile ./zfs-scrub-annotations.sh;
|
|
};
|
|
in
|
|
lib.mkIf (config.services.grafana.enable && config.services.zfs.autoScrub.enable) {
|
|
systemd.services.zfs-scrub = {
|
|
environment = {
|
|
GRAFANA_URL = grafanaUrl;
|
|
STATE_DIR = "/run/zfs-scrub-annotations";
|
|
};
|
|
serviceConfig = {
|
|
RuntimeDirectory = "zfs-scrub-annotations";
|
|
ExecStartPre = [ "-${lib.getExe script} start" ];
|
|
ExecStopPost = [ "${lib.getExe script} stop" ];
|
|
};
|
|
};
|
|
}
|