blob: 39e4ca14b9daf33cae05fc298b0e7d52679be695 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
{ config, lib, ... }:
with lib;
{
options.services.borgbackup.jobList = mkOption {
default = [];
type = types.listOf types.str;
description = "List of Borgbackup jobs for which we want nice defaults";
};
config.services.borgbackup.jobs = let
passFile = name:
"/etc/nixos/usecases/common/backup-client/private/${name}_pass.txt";
keyFile = name:
"/etc/nixos/usecases/common/backup-client/private/${name}_key";
in genAttrs config.services.borgbackup.jobList (name: {
compression = mkDefault "auto,zstd";
encryption = {
mode = mkDefault "repokey";
passCommand = mkDefault "cat ${passFile name}";
};
environment = {
BORG_RSH = mkDefault "ssh -i ${keyFile name}";
};
extraCreateArgs = mkDefault "--stats";
extraPruneArgs = mkDefault "--list --stats";
});
}
|