Merge pull request #319807 from hellodword/nixos-restic-add-unlock

nixos/restic: ensure newline in --files-from
This commit is contained in:
Emily 2024-08-02 18:18:47 +02:00 committed by GitHub
commit ecf7c683c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 5 deletions

View File

@ -374,7 +374,7 @@ in
${resticCmd} cat config > /dev/null || ${resticCmd} init ${resticCmd} cat config > /dev/null || ${resticCmd} init
''} ''}
${optionalString (backup.paths != null && backup.paths != []) '' ${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) '' ${optionalString (backup.dynamicFilesFrom != null) ''
${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} >> ${filesFromTmpFile} ${pkgs.writeScript "dynamicFilesFromScript" backup.dynamicFilesFrom} >> ${filesFromTmpFile}

View File

@ -27,6 +27,7 @@ import ./make-test-python.nix (
echo some_other_file > $out/some_other_file echo some_other_file > $out/some_other_file
mkdir $out/a_dir mkdir $out/a_dir
echo a_file > $out/a_dir/a_file 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; inherit passwordFile exclude pruneOpts;
initialize = true; initialize = true;
repositoryFile = pkgs.writeText "repositoryFile" remoteFromFileRepository; repositoryFile = pkgs.writeText "repositoryFile" remoteFromFileRepository;
paths = [ "/opt/a_dir" ]; paths = [
"/opt/a_dir/a_file"
"/opt/a_dir/a_file_2"
];
dynamicFilesFrom = '' dynamicFilesFrom = ''
find /opt -mindepth 1 -maxdepth 1 ! -name a_dir # all files in /opt except for a_dir 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 # test that remote-from-file-backup produces a snapshot
"systemctl start restic-backups-remote-from-file-backup.service", "systemctl start restic-backups-remote-from-file-backup.service",
'restic-remote-from-file-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"', '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 # test that remote-noinit-backup produces a snapshot
"systemctl start restic-backups-remote-noinit-backup.service", "systemctl start restic-backups-remote-noinit-backup.service",
'restic-remote-noinit-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"', 'restic-remote-noinit-backup snapshots --json | ${pkgs.jq}/bin/jq "length | . == 1"',
# test that restoring that snapshot produces the same directory # test that restoring that snapshot produces the same directory
"mkdir /tmp/restore-2", "mkdir /tmp/restore-3",
"${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-2", "${pkgs.restic}/bin/restic -r ${remoteRepository} -p ${passwordFile} restore latest -t /tmp/restore-3",
"diff -ru ${testDir} /tmp/restore-2/opt", "diff -ru ${testDir} /tmp/restore-3/opt",
# test that rclonebackup produces a snapshot # test that rclonebackup produces a snapshot
"systemctl start restic-backups-rclonebackup.service", "systemctl start restic-backups-rclonebackup.service",