{ config, lib, ... }: with lib; let supportedFilesystems = builtins.map (builtins.getAttr "fsType") (builtins.attrValues config.fileSystems); mkScrubConfig = fsType: { enable = builtins.elem fsType supportedFilesystems; interval = "weekly"; }; in { services.btrfs.autoScrub = mkScrubConfig "btrfs"; services.zfs.autoScrub = mkScrubConfig "zfs"; # bcachefs exists but it was "ejected from the kernel" for "repeated violations of kernel dev. guidelines" # linus "tech tips" torvalds said himself "nobody sane uses bcachefs and expects it to be stable" (https://en.wikipedia.org/wiki/Bcachefs#Stability) }