nixos/restic: ensure newline in --files-from

This commit is contained in:
hellodword 2024-07-29 01:23:54 +00:00
parent 8e3eab28d8
commit e4a4da8794
No known key found for this signature in database
GPG Key ID: 094D44EBA7DBAE80
2 changed files with 12 additions and 5 deletions

View File

@ -358,7 +358,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}

View File

@ -26,6 +26,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
'';
};
@ -61,7 +62,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
'';
@ -137,15 +141,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",