system.activationScripts.backup = ''
install -m 0700 -o root -g root -d ${varDir} ${varDir}/caches
'';
- secrets.keys = lib.flatten (lib.mapAttrsToList (k: v:
+ secrets.keys = lib.listToAttrs (lib.flatten (lib.mapAttrsToList (k: v:
map (remote: [
- {
+ (lib.nameValuePair "backup/${varName k remote}/conf" {
permissions = "0400";
- dest = "backup/${varName k remote}/conf";
text = duplyProfile v remote "${k}/";
- }
- {
+ })
+ (lib.nameValuePair "backup/${varName k remote}/exclude" {
permissions = "0400";
- dest = "backup/${varName k remote}/exclude";
text = v.excludeFile;
- }
- ]) v.remotes) config.services.duplyBackup.profiles);
+ })
+ (lib.nameValuePair "backup/${varName k remote}" {
+ permissions = "0500";
+ isDir = true;
+ })
+ ]) v.remotes) config.services.duplyBackup.profiles));
services.cron = {
enable = true;
map (remote: [
''
touch ${varDir}/${varName k remote}.log
- ${pkgs.duply}/bin/duply ${config.secrets.location}/backup/${varName k remote}/ ${action} --force >> ${varDir}/${varName k remote}.log
+ ${pkgs.duply}/bin/duply ${config.secrets.fullPaths."backup/${varName k remote}"}/ ${action} --force >> ${varDir}/${varName k remote}.log
[[ $? = 0 ]] || echo -e "Error when doing backup for ${varName k remote}, see above\n---------------------------------------" >&2
''
]) v.remotes