module/backup: remove backup module commited by accident
This commit is contained in:
parent
5fa2b58c3d
commit
2ab99d861a
@ -1,95 +0,0 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.clerie.backup;
|
|
||||||
|
|
||||||
generateBackupServiceUnit = jobName: job: let
|
|
||||||
targets = cfg.targets;
|
|
||||||
jobPasswordFile = if job.passwordFile == null then config.age."backup-job-${jobName}".path else job.passwordFile;
|
|
||||||
repoPath = if job.repoPath == null then "/${config.networking.hostName}/${jobName}" else job.repoPath;
|
|
||||||
unit = concatMapAttrs targetName: target: let
|
|
||||||
targetPasswordFile = if target.passwordFile == null then config.age."backup-target-${targetName}".path else target.passwordFile;
|
|
||||||
targetUsername = if target.username == null then config.networing.hostName else target.username;
|
|
||||||
in (nameValuePair "clerie-restic-backup-${jobName}-${targetName}" {
|
|
||||||
requires = [ "network.target" "local-fs.target" ];
|
|
||||||
path = [ pkgs.resic ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
};
|
|
||||||
|
|
||||||
script = ''
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
export RESTIC_PASSWORD_FILE=${jobPasswordFile}
|
|
||||||
export RESTIC_REPOSITORY="rest:https://${targetUsername}:$(cat ${targetPasswordFile})@${target.serverName}${repoPath}"
|
|
||||||
|
|
||||||
restic snapshots || restic init
|
|
||||||
|
|
||||||
restic backup ${escapeShellArgs job.paths}
|
|
||||||
|
|
||||||
restic check
|
|
||||||
''});
|
|
||||||
|
|
||||||
in units;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
targetOptions = { ... }: {
|
|
||||||
options = {
|
|
||||||
passwordFile = mkOption {
|
|
||||||
type = with types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
};
|
|
||||||
username = mkOption {
|
|
||||||
type = with types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
};
|
|
||||||
serverName = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
jobModules = { ... }: {
|
|
||||||
options = {
|
|
||||||
passwordFile = mkOption {
|
|
||||||
type = with types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
};
|
|
||||||
repoPath = mkOption {
|
|
||||||
type = with types; nullOr str;
|
|
||||||
default = null;
|
|
||||||
};
|
|
||||||
targets = mkOption {
|
|
||||||
type = with types; nullOr (listOf str);
|
|
||||||
defualt = null;
|
|
||||||
};
|
|
||||||
paths = mkOption {
|
|
||||||
type = with types; listOf str;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
clerie.backup = {
|
|
||||||
enable = mkEnableOption "clerie's Backup";
|
|
||||||
targets = {
|
|
||||||
type = with types; attrsOF (submodule targetOptions);
|
|
||||||
default = {};
|
|
||||||
};
|
|
||||||
jobs = mkOption {
|
|
||||||
type = with types; attrsOf (submodule jobOptions);
|
|
||||||
default = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
systemd.services = mapAttrs' generateBackupServiceUnit (cfg.jobs)
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user