summary refs log tree commit diff
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorAlexei Robyn <shados@shados.net>2016-05-11 20:52:49 +1000
committerAlexei Robyn <shados@shados.net>2016-05-12 09:27:52 +1000
commitc90d5eb2988995e8e7bd387a5d1899d935882680 (patch)
tree044f0456f0c65158f21f444cf3bae3f5b76b503c /nixos/modules/services
parent7abe192b05eea78610d6eea755a66fcb93a77b68 (diff)
downloadnixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.tar
nixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.tar.gz
nixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.tar.bz2
nixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.tar.lz
nixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.tar.xz
nixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.tar.zst
nixlib-c90d5eb2988995e8e7bd387a5d1899d935882680.zip
rsnapshot module: Avoid package rebuild, pass config file explicitly.
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/backup/rsnapshot.nix48
1 files changed, 17 insertions, 31 deletions
diff --git a/nixos/modules/services/backup/rsnapshot.nix b/nixos/modules/services/backup/rsnapshot.nix
index 96657cf17fc5..05dc83372bef 100644
--- a/nixos/modules/services/backup/rsnapshot.nix
+++ b/nixos/modules/services/backup/rsnapshot.nix
@@ -2,7 +2,19 @@
 
 with lib;
 
-let cfg = config.services.rsnapshot;
+let 
+  cfg = config.services.rsnapshot;
+  cfgfile = pkgs.writeText "rsnapshot.conf" ''
+    config_version	1.2
+    cmd_cp	${pkgs.coreutils}/bin/cp
+    cmd_rsync	${pkgs.rsync}/bin/rsync
+    cmd_ssh	${pkgs.openssh}/bin/ssh
+    cmd_logger	${pkgs.inetutils}/bin/logger
+    cmd_du	${pkgs.coreutils}/bin/du
+    lockfile	/run/rsnapshot.pid
+
+    ${cfg.extraConfig}
+  '';
 in
 {
   options = {
@@ -39,37 +51,11 @@ in
           as retain options.
         '';
       };
-
-      package = mkOption {
-        type = types.package;
-        default = pkgs.rsnapshot;
-        defaultText = "pkgs.rsnapshot";
-        example = literalExample "pkgs.rsnapshotGit";
-        description = ''
-          RSnapshot package to use.
-        '';
-      };
     };
   };
 
-  config = mkIf cfg.enable (let
-    myRsnapshot = cfg.package.override { configFile = rsnapshotCfg; };
-    rsnapshotCfg = with pkgs; writeText "gen-rsnapshot.conf" (''
-        config_version	1.2
-        cmd_cp	${coreutils}/bin/cp
-        cmd_rsync	${rsync}/bin/rsync
-        cmd_ssh	${openssh}/bin/ssh
-        cmd_logger	${inetutils}/bin/logger
-        cmd_du	${coreutils}/bin/du
-        lockfile	/run/rsnapshot.pid
-
-        ${cfg.extraConfig}
-      '');
-    in {
-      environment.systemPackages = [ myRsnapshot ];
-
-      services.cron.systemCronJobs =
-        mapAttrsToList (interval: time: "${time} root ${myRsnapshot}/bin/rsnapshot ${interval}") cfg.cronIntervals;
-    }
-  );
+  config = mkIf cfg.enable {
+    services.cron.systemCronJobs =
+      mapAttrsToList (interval: time: "${time} root ${pkgs.rsnapshot}/bin/rsnapshot -c ${cfgfile} ${interval}") cfg.cronIntervals;
+  };
 }