summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmily <git@emilylange.de>2024-08-02 18:18:47 +0200
committerGitHub <noreply@github.com>2024-08-02 18:18:47 +0200
commitecf7c683c21655a2c90bec49ce726aa6615a7d28 (patch)
tree29b0725490fbbac48f496370fe103c5914b82d61
parentMerge pull request #330741 from emilazy/push-rlvumrtyxrmk (diff)
parentnixos/restic: ensure newline in --files-from (diff)
downloadnixpkgs-ecf7c683c21655a2c90bec49ce726aa6615a7d28.tar.gz
Merge pull request #319807 from hellodword/nixos-restic-add-unlock
nixos/restic: ensure newline in --files-from
-rw-r--r--nixos/modules/services/backup/restic.nix2
-rw-r--r--nixos/tests/restic.nix15
2 files changed, 12 insertions, 5 deletions
diff --git a/nixos/modules/services/backup/restic.nix b/nixos/modules/services/backup/restic.nix
index a9330e5d43f2..a7c2ef2eacd5 100644
--- a/nixos/modules/services/backup/restic.nix
+++ b/nixos/modules/services/backup/restic.nix
@@ -374,7 +374,7 @@ in
${resticCmd} cat config > /dev/null || ${resticCmd} init
''}
${optionalString (backup.paths != null && backup.paths != []) ''
- cat ${pkgs.writeText "staticPaths" (concatStringsSep "\n" backup.paths)} >> ${filesFromTmpFile}
+ cat ${pkgs.writeText "staticPaths" (concatLines backup.paths)} >> ${filesFromTmpFile}
''}
${optionalString (backup.dynamicFilesFrom != null) ''
${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} >> ${filesFromTmpFile}
diff --git a/nixos/tests/restic.nix b/nixos/tests/restic.nix
index 878523ca712b..49631d27ca80 100644
--- a/nixos/tests/restic.nix
+++ b/nixos/tests/restic.nix
@@ -27,6 +27,7 @@ import ./make-test-python.nix (
echo some_other_file > $out/some_other_file
mkdir $out/a_dir
echo a_file > $out/a_dir/a_file
+ echo a_file_2 > $out/a_dir/a_file_2
'';
};
@@ -62,7 +63,10 @@ import ./make-test-python.nix (
inherit passwordFile exclude pruneOpts;
initialize = true;
repositoryFile = pkgs.writeText "repositoryFile" remoteFromFileRepository;
- paths = [ "/opt/a_dir" ];
+ paths = [
+ "/opt/a_dir/a_file"
+ "/opt/a_dir/a_file_2"
+ ];
dynamicFilesFrom = ''
find /opt -mindepth 1 -maxdepth 1 ! -name a_dir # all files in /opt except for a_dir
'';
@@ -144,15 +148,18 @@ import ./make-test-python.nix (
# test that remote-from-file-backup produces a snapshot
"systemctl start restic-backups-remote-from-file-backup.service",
'restic-remote-from-file-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',
+ "mkdir /tmp/restore-2",
+ "restic-remote-from-file-backup restore latest -t /tmp/restore-2",
+ "diff -ru ${testDir} /tmp/restore-2/opt",
# test that remote-noinit-backup produces a snapshot
"systemctl start restic-backups-remote-noinit-backup.service",
'restic-remote-noinit-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',
# test that restoring that snapshot produces the same directory
- "mkdir /tmp/restore-2",
- "${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-2",
- "diff -ru ${testDir} /tmp/restore-2/opt",
+ "mkdir /tmp/restore-3",
+ "${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-3",
+ "diff -ru ${testDir} /tmp/restore-3/opt",
# test that rclonebackup produces a snapshot
"systemctl start restic-backups-rclonebackup.service",