nixos/borgbackup: add package option

Co-authored-by: Lin Jian <me@linj.tech>

amesgen bbf7f58b 34d8d08f

Changed files
+7 -4
nixos
modules
services
+7 -4
nixos/modules/services/backup/borgbackup.nix
···
backupScript = mkBackupScript backupJobName cfg;
in nameValuePair backupJobName {
description = "BorgBackup job ${name}";
-
path = with pkgs; [
-
borgbackup openssh
+
path = [
+
config.services.borgbackup.package pkgs.openssh
];
script = "exec " + optionalString cfg.inhibitsSleep ''\
${pkgs.systemd}/bin/systemd-inhibit \
···
'');
mkBorgWrapper = name: cfg: mkWrapperDrv {
-
original = "${pkgs.borgbackup}/bin/borg";
+
original = getExe config.services.borgbackup.package;
name = "borg-job-${name}";
set = { BORG_REPO = cfg.repo; } // (mkPassEnv cfg) // cfg.environment;
};
···
meta.doc = ./borgbackup.md;
###### interface
+
+
options.services.borgbackup.package = mkPackageOptionMD pkgs "borgbackup" { };
options.services.borgbackup.jobs = mkOption {
description = lib.mdDoc ''
···
users = mkMerge (mapAttrsToList mkUsersConfig repos);
-
environment.systemPackages = with pkgs; [ borgbackup ] ++ (mapAttrsToList mkBorgWrapper jobs);
+
environment.systemPackages =
+
[ config.services.borgbackup.package ] ++ (mapAttrsToList mkBorgWrapper jobs);
});
}