mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 18:03:04 +00:00
nixos/duplicity: add options to exercise all possible verbs
except restore ;)
This commit is contained in:
parent
e67e79642e
commit
41c7fa448f
@ -84,7 +84,7 @@ in
|
|||||||
extraFlags = mkOption {
|
extraFlags = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
example = [ "--full-if-older-than" "1M" ];
|
example = [ "--backend-retry-delay" "100" ];
|
||||||
description = ''
|
description = ''
|
||||||
Extra command-line flags passed to duplicity. See
|
Extra command-line flags passed to duplicity. See
|
||||||
<citerefentry><refentrytitle>duplicity</refentrytitle>
|
<citerefentry><refentrytitle>duplicity</refentrytitle>
|
||||||
@ -92,6 +92,20 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
fullIfOlderThan = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "never";
|
||||||
|
example = "1M";
|
||||||
|
description = ''
|
||||||
|
If <literal>"never"</literal> (the default) always do incremental
|
||||||
|
backups (the first backup will be a full backup, of course). If
|
||||||
|
<literal>"always"</literal> always do full backups. Otherwise, this
|
||||||
|
must be a string representing a duration. Full backups will be made
|
||||||
|
when the latest full backup is older than this duration. If this is not
|
||||||
|
the case, an incremental backup is performed.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
cleanup = {
|
cleanup = {
|
||||||
maxAge = mkOption {
|
maxAge = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
@ -112,6 +126,16 @@ in
|
|||||||
associated incremental sets).
|
associated incremental sets).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
maxIncr = mkOption {
|
||||||
|
type = types.nullOr types.int;
|
||||||
|
default = null;
|
||||||
|
example = 1;
|
||||||
|
description = ''
|
||||||
|
If non-null, delete incremental sets of all backups sets that are
|
||||||
|
older than the count:th last full backup (in other words, keep only
|
||||||
|
old full backups and not their increments).
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -133,10 +157,12 @@ in
|
|||||||
${dup} cleanup ${target} --force ${extra}
|
${dup} cleanup ${target} --force ${extra}
|
||||||
${lib.optionalString (cfg.cleanup.maxAge != null) "${dup} remove-older-than ${lib.escapeShellArg cfg.cleanup.maxAge} ${target} --force ${extra}"}
|
${lib.optionalString (cfg.cleanup.maxAge != null) "${dup} remove-older-than ${lib.escapeShellArg cfg.cleanup.maxAge} ${target} --force ${extra}"}
|
||||||
${lib.optionalString (cfg.cleanup.maxFull != null) "${dup} remove-all-but-n-full ${toString cfg.cleanup.maxFull} ${target} --force ${extra}"}
|
${lib.optionalString (cfg.cleanup.maxFull != null) "${dup} remove-all-but-n-full ${toString cfg.cleanup.maxFull} ${target} --force ${extra}"}
|
||||||
exec ${dup} incr ${lib.escapeShellArgs (
|
${lib.optionalString (cfg.cleanup.maxIncr != null) "${dup} remove-all-incr-but-n-full ${toString cfg.cleanup.maxIncr} ${target} --force ${extra}"}
|
||||||
|
exec ${dup} ${if cfg.fullIfOlderThan == "always" then "full" else "incr"} ${lib.escapeShellArgs (
|
||||||
[ cfg.root cfg.targetUrl ]
|
[ cfg.root cfg.targetUrl ]
|
||||||
++ concatMap (p: [ "--include" p ]) cfg.include
|
++ concatMap (p: [ "--include" p ]) cfg.include
|
||||||
++ concatMap (p: [ "--exclude" p ]) cfg.exclude
|
++ concatMap (p: [ "--exclude" p ]) cfg.exclude
|
||||||
|
++ (lib.optionals (cfg.fullIfOlderThan != "never" && cfg.fullIfOlderThan != "always") [ "--full-if-older-than" cfg.fullIfOlderThan ])
|
||||||
)} ${extra}
|
)} ${extra}
|
||||||
'';
|
'';
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
|
Loading…
Reference in New Issue
Block a user