tasks/backup-archive: format and refactor

This commit is contained in:
Gabriel Arazas 2022-09-01 22:47:22 +08:00
parent 33a090a73d
commit 91097f18df

View File

@ -36,21 +36,27 @@ let
};
};
in {
in
{
options.tasks.backup-archive.enable =
lib.mkEnableOption "backup setup with BorgBackup";
config = lib.mkIf cfg.enable {
sops.secrets = let
borgSecretsPath = key: "borg-backup/${key}";
sops.secrets =
let
getKey = key: {
inherit key;
sopsFile = lib.getSecret "backup-archive.yaml";
name = borgSecretsPath key;
};
getSecrets = keys:
lib.listToAttrs (lib.lists.map (key: lib.nameValuePair (borgSecretsPath key) (getKey key)) keys);
in getSecrets [
lib.listToAttrs (lib.lists.map
(key:
lib.nameValuePair
"borg-backup/${key}"
(getKey key))
keys);
in
getSecrets [
"borg-patterns/home"
"borg-patterns/etc"
"borg-patterns/keys"
@ -65,7 +71,8 @@ in {
};
services.borgbackup.jobs = {
local-archive = borgJobCommonSetting {
local-archive = borgJobCommonSetting
{
patterns = with config.sops; [
secrets."borg-backup/borg-patterns/home".path
secrets."borg-backup/borg-patterns/etc".path
@ -78,7 +85,8 @@ in {
startAt = "daily";
};
local-external-drive = borgJobCommonSetting {
local-external-drive = borgJobCommonSetting
{
patterns = with config.sops; [
secrets."borg-backup/borg-patterns/home".path
secrets."borg-backup/borg-patterns/etc".path
@ -91,7 +99,8 @@ in {
startAt = "daily";
};
remote-borgbase = borgJobCommonSetting {
remote-borgbase = borgJobCommonSetting
{
patterns = with config.sops; [
secrets."borg-backup/borg-patterns/remote-backup".path
];