···
5
-
let cfg = config.services.rsnapshot;
6
+
cfg = config.services.rsnapshot;
7
+
cfgfile = pkgs.writeText "rsnapshot.conf" ''
9
+
cmd_cp ${pkgs.coreutils}/bin/cp
10
+
cmd_rsync ${pkgs.rsync}/bin/rsync
11
+
cmd_ssh ${pkgs.openssh}/bin/ssh
12
+
cmd_logger ${pkgs.inetutils}/bin/logger
13
+
cmd_du ${pkgs.coreutils}/bin/du
14
+
lockfile /run/rsnapshot.pid
···
43
-
package = mkOption {
44
-
type = types.package;
45
-
default = pkgs.rsnapshot;
46
-
defaultText = "pkgs.rsnapshot";
47
-
example = literalExample "pkgs.rsnapshotGit";
49
-
RSnapshot package to use.
55
-
config = mkIf cfg.enable (let
56
-
myRsnapshot = cfg.package.override { configFile = rsnapshotCfg; };
57
-
rsnapshotCfg = with pkgs; writeText "gen-rsnapshot.conf" (''
59
-
cmd_cp ${coreutils}/bin/cp
60
-
cmd_rsync ${rsync}/bin/rsync
61
-
cmd_ssh ${openssh}/bin/ssh
62
-
cmd_logger ${inetutils}/bin/logger
63
-
cmd_du ${coreutils}/bin/du
64
-
lockfile /run/rsnapshot.pid
69
-
environment.systemPackages = [ myRsnapshot ];
71
-
services.cron.systemCronJobs =
72
-
mapAttrsToList (interval: time: "${time} root ${myRsnapshot}/bin/rsnapshot ${interval}") cfg.cronIntervals;
57
+
config = mkIf cfg.enable {
58
+
services.cron.systemCronJobs =
59
+
mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;