diff options
author | Lassulus <github@lassul.us> | 2023-03-22 00:37:46 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-22 00:37:46 +0700 |
commit | 3839340fdbb78f528602a40828fdbaacccc716ea (patch) | |
tree | 4045bf6e417ba86420285aa77e56514f95c18f94 /nixos | |
parent | 0b3b9536bcc335104a4fb03e9ac15015d18b50cb (diff) | |
parent | adafbeff4ad01e21b9d1b39f072298978c08aa6c (diff) |
Merge pull request #220656 from oxzi/restic-cache-fix
nixos/restic: generalize cache configuration
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/backup/restic.nix | 7 | ||||
-rw-r--r-- | nixos/tests/restic.nix | 6 |
2 files changed, 7 insertions, 6 deletions
diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix index bc24e13aa050e..ca796cf7797e6 100644 --- a/nixos/modules/services/backup/restic.nix +++ b/nixos/modules/services/backup/restic.nix @@ -303,8 +303,8 @@ in then if (backup.paths != null) then concatStringsSep " " backup.paths else "" else "--files-from ${filesFromTmpFile}"; pruneCmd = optionals (builtins.length backup.pruneOpts > 0) [ - (resticCmd + " forget --prune --cache-dir=%C/restic-backups-${name} " + (concatStringsSep " " backup.pruneOpts)) - (resticCmd + " check --cache-dir=%C/restic-backups-${name} " + (concatStringsSep " " backup.checkOpts)) + (resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts)) + (resticCmd + " check " + (concatStringsSep " " backup.checkOpts)) ]; # Helper functions for rclone remotes rcloneRemoteName = builtins.elemAt (splitString ":" backup.repository) 1; @@ -314,6 +314,7 @@ in in nameValuePair "restic-backups-${name}" ({ environment = { + RESTIC_CACHE_DIR = "%C/restic-backups-${name}"; RESTIC_PASSWORD_FILE = backup.passwordFile; RESTIC_REPOSITORY = backup.repository; RESTIC_REPOSITORY_FILE = backup.repositoryFile; @@ -332,7 +333,7 @@ in restartIfChanged = false; serviceConfig = { Type = "oneshot"; - ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup --cache-dir=%C/restic-backups-${name} ${concatStringsSep " " (backup.extraBackupArgs ++ excludeFlags)} ${backupPaths}" ]) + ExecStart = (optionals (backupPaths != "") [ "${resticCmd} backup ${concatStringsSep " " (backup.extraBackupArgs ++ excludeFlags)} ${backupPaths}" ]) ++ pruneCmd; User = backup.user; RuntimeDirectory = "restic-backups-${name}"; diff --git a/nixos/tests/restic.nix b/nixos/tests/restic.nix index 42af0783863ea..1071fbada74fe 100644 --- a/nixos/tests/restic.nix +++ b/nixos/tests/restic.nix @@ -100,7 +100,7 @@ import ./make-test-python.nix ( "${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} snapshots", '${pkgs.restic}/bin/restic -r ${remoteFromFileRepository} -p ${passwordFile} snapshots"', "${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots", - "grep 'backup .* /opt' /tmp/fake-restic.log", + "grep 'backup.* /opt' /tmp/fake-restic.log", ) server.succeed( # set up @@ -129,8 +129,8 @@ import ./make-test-python.nix ( # test that custompackage runs both `restic backup` and `restic check` with reasonable commandlines "systemctl start restic-backups-custompackage.service", - "grep 'backup .* /opt' /tmp/fake-restic.log", - "grep 'check .* --some-check-option' /tmp/fake-restic.log", + "grep 'backup.* /opt' /tmp/fake-restic.log", + "grep 'check.* --some-check-option' /tmp/fake-restic.log", # test that we can create four snapshots in remotebackup and rclonebackup "timedatectl set-time '2017-12-13 13:45'", |