{ config, lib, ... }:

with lib;
let
  addDefaultTime = bku-entry: recursiveUpdate {
    snapshots = {
      daily    = { format = "%Y-%m-%d"; retain =  7; };
      weekly   = { format = "%YW%W";    retain =  4; };
      monthly  = { format = "%Y-%m";    retain = 12; };
      yearly   = { format = "%Y";                    };
    };
    startAt = "5:23";
  } bku-entry;

  backup-host = config.krebs.hosts.omo;
  backup-path = "/media/backup";
in {
  bku = {
    inherit addDefaultTime;
    simplePath = addDefaultTime (path: {
      method = "pull";
      src = { host = config.krebs.build.host; inherit path; };
      dst = {
        host = backup-host;
        path = backup-path ++ config.krebs.build.host.name
                           ++ builtins.replaceStrings ["/"] ["-"] path;
      };
    });
  };
}