diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2017-12-17 14:33:23 +0100 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2017-12-17 14:33:23 +0100 |
| commit | afdf1fb1ffaa64400f7c72b66bc6d8865539244f (patch) | |
| tree | 98342c2a8ca332b1adc03d3d7eebbf79ee97a48f /custom | |
| parent | 35c9469e12fda926c4aff261d2d1e398dbd23db7 (diff) | |
| download | nixos-afdf1fb1ffaa64400f7c72b66bc6d8865539244f.tar nixos-afdf1fb1ffaa64400f7c72b66bc6d8865539244f.tar.gz nixos-afdf1fb1ffaa64400f7c72b66bc6d8865539244f.tar.bz2 nixos-afdf1fb1ffaa64400f7c72b66bc6d8865539244f.tar.xz nixos-afdf1fb1ffaa64400f7c72b66bc6d8865539244f.zip | |
…
Diffstat (limited to 'custom')
| -rw-r--r-- | custom/borgbackup.nix | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/custom/borgbackup.nix b/custom/borgbackup.nix index e3e61c82..7da35b05 100644 --- a/custom/borgbackup.nix +++ b/custom/borgbackup.nix | |||
| @@ -59,7 +59,7 @@ in { | |||
| 59 | config = mkIf (any (t: t.paths != []) (attrValues cfg.targets)) { | 59 | config = mkIf (any (t: t.paths != []) (attrValues cfg.targets)) { |
| 60 | services.btrfs-snapshots.enable = mkIf (cfg.snapshots == "btrfs") true; | 60 | services.btrfs-snapshots.enable = mkIf (cfg.snapshots == "btrfs") true; |
| 61 | 61 | ||
| 62 | systemd.timers = listToAttrs (map ({ target, path, tCfg }: nameValuePair "borgbackup-${target}-${path}" { | 62 | systemd.timers = (listToAttrs (map ({ target, path, tCfg }: nameValuePair "borgbackup-${target}-${path}" { |
| 63 | wantedBy = [ "timers.target" ]; | 63 | wantedBy = [ "timers.target" ]; |
| 64 | 64 | ||
| 65 | timerConfig = { | 65 | timerConfig = { |
| @@ -67,7 +67,7 @@ in { | |||
| 67 | OnBootSec = tCfg.interval; | 67 | OnBootSec = tCfg.interval; |
| 68 | OnUnitInactiveSec = tCfg.interval; | 68 | OnUnitInactiveSec = tCfg.interval; |
| 69 | }; | 69 | }; |
| 70 | }) (flatten (mapAttrsToList (target: tCfg: map (path: { inherit target path tCfg; }) tCfg.paths) cfg.targets))) // mapAttrs (target: tCfg: nameValuePair "borgbackup-prune-${target}" { | 70 | }) (flatten (mapAttrsToList (target: tCfg: map (path: { inherit target path tCfg; }) tCfg.paths) cfg.targets)))) // (mapAttrs (target: tCfg: nameValuePair "borgbackup-prune-${target}" { |
| 71 | wantedBy = [ "timers.target" ]; | 71 | wantedBy = [ "timers.target" ]; |
| 72 | 72 | ||
| 73 | timerConfig = { | 73 | timerConfig = { |
| @@ -75,9 +75,9 @@ in { | |||
| 75 | OnBootSec = tCfg.interval; | 75 | OnBootSec = tCfg.interval; |
| 76 | OnUnitInactiveSec = tCfg.interval; | 76 | OnUnitInactiveSec = tCfg.interval; |
| 77 | }; | 77 | }; |
| 78 | }) cfg.targets; | 78 | }) cfg.targets); |
| 79 | 79 | ||
| 80 | systemd.services = mapAttrs (target: tCfg: nameValuePair "borgbackup-${target}@" (let | 80 | systemd.services = (mapAttrs (target: tCfg: nameValuePair "borgbackup-${target}@" (let |
| 81 | deps = flatten [ | 81 | deps = flatten [ |
| 82 | (optional (cfg.snapshots == "btrfs") "btrfs-snapshot@%p.service") | 82 | (optional (cfg.snapshots == "btrfs") "btrfs-snapshot@%p.service") |
| 83 | (optional tCfg.network "network-online.target") | 83 | (optional tCfg.network "network-online.target") |
| @@ -117,20 +117,20 @@ in { | |||
| 117 | IOSchedulingPriority = 7; | 117 | IOSchedulingPriority = 7; |
| 118 | SuccessExitStatus = [1 2]; | 118 | SuccessExitStatus = [1 2]; |
| 119 | }; | 119 | }; |
| 120 | })) cfg.targets // mapAttrs (target: tCfg: nameValuePair "borgbackup-prune-${target}" { | 120 | })) cfg.targets) // (mapAttrs (target: tCfg: nameValuePair "borgbackup-prune-${target}" { |
| 121 | bindsTo = "network-online.target"; | 121 | bindsTo = "network-online.target"; |
| 122 | after = "network-online.target"; | 122 | after = "network-online.target"; |
| 123 | 123 | ||
| 124 | script = concatStringsSep "\n" (mapAttrsToList ('' | 124 | script = concatStringsSep "\n" (mapAttrsToList (path: args: '' |
| 125 | borg prune \ | 125 | borg prune \ |
| 126 | --prefix "${cfg.prefix}${path}" \ | 126 | --prefix "${cfg.prefix}${path}" \ |
| 127 | ${concatStringsSep " " tCfg.prune."${path}"} \ | 127 | ${concatStringsSep " " args} \ |
| 128 | ${tCfg.repo} | 128 | ${tCfg.repo} |
| 129 | '') tCfg.prune); | 129 | '') tCfg.prune); |
| 130 | 130 | ||
| 131 | serviceConfig = { | 131 | serviceConfig = { |
| 132 | Type = "oneshot"; | 132 | Type = "oneshot"; |
| 133 | }; | 133 | }; |
| 134 | }) cfg.targets; | 134 | }) cfg.targets); |
| 135 | }; | 135 | }; |
| 136 | } | 136 | } |
