{ 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 { 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" ]; }; }; }