rsnapshot module: Enable manual rsnapshot usage with module config.

Changed files
+16 -4
nixos
modules
services
backup
+16 -4
nixos/modules/services/backup/rsnapshot.nix
···
options = {
services.rsnapshot = {
enable = mkEnableOption "rsnapshot backups";
+
enableManualRsnapshot = mkOption {
+
description = "Whether to enable manual usage of the rsnapshot command with this module.";
+
default = true;
+
example = false;
+
type = types.bool;
+
};
extraConfig = mkOption {
default = "";
···
};
};
-
config = mkIf cfg.enable {
-
services.cron.systemCronJobs =
-
mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;
-
};
+
config = mkIf cfg.enable (mkMerge [
+
{
+
services.cron.systemCronJobs =
+
mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;
+
}
+
(mkIf cfg.enableManualRsnapshot {
+
environment.systemPackages = [ pkgs.rsnapshot ];
+
environment.etc."rsnapshot.conf".source = cfgfile;
+
})
+
]);
}