rsnapshot module: Avoid package rebuild, pass config file explicitly.
This commit is contained in:
parent
7abe192b05
commit
c90d5eb298
@ -2,7 +2,19 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let cfg = config.services.rsnapshot;
|
let
|
||||||
|
cfg = config.services.rsnapshot;
|
||||||
|
cfgfile = pkgs.writeText "rsnapshot.conf" ''
|
||||||
|
config_version 1.2
|
||||||
|
cmd_cp ${pkgs.coreutils}/bin/cp
|
||||||
|
cmd_rsync ${pkgs.rsync}/bin/rsync
|
||||||
|
cmd_ssh ${pkgs.openssh}/bin/ssh
|
||||||
|
cmd_logger ${pkgs.inetutils}/bin/logger
|
||||||
|
cmd_du ${pkgs.coreutils}/bin/du
|
||||||
|
lockfile /run/rsnapshot.pid
|
||||||
|
|
||||||
|
${cfg.extraConfig}
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options = {
|
options = {
|
||||||
@ -39,37 +51,11 @@ in
|
|||||||
as retain options.
|
as retain options.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
package = mkOption {
|
|
||||||
type = types.package;
|
|
||||||
default = pkgs.rsnapshot;
|
|
||||||
defaultText = "pkgs.rsnapshot";
|
|
||||||
example = literalExample "pkgs.rsnapshotGit";
|
|
||||||
description = ''
|
|
||||||
RSnapshot package to use.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable (let
|
config = mkIf cfg.enable {
|
||||||
myRsnapshot = cfg.package.override { configFile = rsnapshotCfg; };
|
|
||||||
rsnapshotCfg = with pkgs; writeText "gen-rsnapshot.conf" (''
|
|
||||||
config_version 1.2
|
|
||||||
cmd_cp ${coreutils}/bin/cp
|
|
||||||
cmd_rsync ${rsync}/bin/rsync
|
|
||||||
cmd_ssh ${openssh}/bin/ssh
|
|
||||||
cmd_logger ${inetutils}/bin/logger
|
|
||||||
cmd_du ${coreutils}/bin/du
|
|
||||||
lockfile /run/rsnapshot.pid
|
|
||||||
|
|
||||||
${cfg.extraConfig}
|
|
||||||
'');
|
|
||||||
in {
|
|
||||||
environment.systemPackages = [ myRsnapshot ];
|
|
||||||
|
|
||||||
services.cron.systemCronJobs =
|
services.cron.systemCronJobs =
|
||||||
mapAttrsToList (interval: time: "${time} root ${myRsnapshot}/bin/rsnapshot ${interval}") cfg.cronIntervals;
|
mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;
|
||||||
}
|
};
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user