nixos/services.rsnapshot: remove with lib;
This commit is contained in:
committed by
Jörg Thalheim
parent
27f54eb43e
commit
dfb290a6c6
@@ -1,7 +1,4 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.rsnapshot;
|
||||
cfgfile = pkgs.writeText "rsnapshot.conf" ''
|
||||
@@ -22,21 +19,21 @@ in
|
||||
{
|
||||
options = {
|
||||
services.rsnapshot = {
|
||||
enable = mkEnableOption "rsnapshot backups";
|
||||
enableManualRsnapshot = mkOption {
|
||||
enable = lib.mkEnableOption "rsnapshot backups";
|
||||
enableManualRsnapshot = lib.mkOption {
|
||||
description = "Whether to enable manual usage of the rsnapshot command with this module.";
|
||||
default = true;
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
extraConfig = lib.mkOption {
|
||||
default = "";
|
||||
example = ''
|
||||
retains hourly 24
|
||||
retain daily 365
|
||||
backup /home/ localhost/
|
||||
'';
|
||||
type = types.lines;
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
rsnapshot configuration option in addition to the defaults from
|
||||
rsnapshot and this module.
|
||||
@@ -49,10 +46,10 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
cronIntervals = mkOption {
|
||||
cronIntervals = lib.mkOption {
|
||||
default = {};
|
||||
example = { hourly = "0 * * * *"; daily = "50 21 * * *"; };
|
||||
type = types.attrsOf types.str;
|
||||
type = lib.types.attrsOf lib.types.str;
|
||||
description = ''
|
||||
Periodicity at which intervals should be run by cron.
|
||||
Note that the intervals also have to exist in configuration
|
||||
@@ -62,12 +59,12 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
config = lib.mkIf cfg.enable (lib.mkMerge [
|
||||
{
|
||||
services.cron.systemCronJobs =
|
||||
mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;
|
||||
lib.mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;
|
||||
}
|
||||
(mkIf cfg.enableManualRsnapshot {
|
||||
(lib.mkIf cfg.enableManualRsnapshot {
|
||||
environment.systemPackages = [ pkgs.rsnapshot ];
|
||||
environment.etc."rsnapshot.conf".source = cfgfile;
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user