summary refs log tree commit diff
path: root/nixos/modules/services/network-filesystems
diff options
context:
space:
mode:
authorNadrieril <nadrieril@gmail.com>2017-07-21 19:14:03 +0100
committerNadrieril <nadrieril@gmail.com>2017-08-06 22:57:53 +0100
commit541377e5f0189819cfa50dacbb7569e26c06a3c0 (patch)
tree45951d63068cbad720f0865aea1f437b0e4e0e63 /nixos/modules/services/network-filesystems
parentd4ef5ac0e962bd6604dda38617c4b98c77a62949 (diff)
downloadnixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.tar
nixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.tar.gz
nixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.tar.bz2
nixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.tar.lz
nixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.tar.xz
nixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.tar.zst
nixlib-541377e5f0189819cfa50dacbb7569e26c06a3c0.zip
rsync service: modernize config file generation
Diffstat (limited to 'nixos/modules/services/network-filesystems')
-rw-r--r--nixos/modules/services/network-filesystems/rsyncd.nix28
1 files changed, 12 insertions, 16 deletions
diff --git a/nixos/modules/services/network-filesystems/rsyncd.nix b/nixos/modules/services/network-filesystems/rsyncd.nix
index 2018bfa14a57..a52fec4c4070 100644
--- a/nixos/modules/services/network-filesystems/rsyncd.nix
+++ b/nixos/modules/services/network-filesystems/rsyncd.nix
@@ -8,22 +8,21 @@ let
 
   motdFile = builtins.toFile "rsyncd-motd" cfg.motd;
 
-  moduleConfig = name:
-    let module = getAttr name cfg.modules; in
-    "[${name}]\n " + (toString (
-       map
-         (key: "${key} = ${toString (getAttr key module)}\n")
-         (attrNames module)
-    ));
-
-  cfgFile = builtins.toFile "rsyncd.conf"
-    ''
+  foreach = attrs: f:
+    concatStringsSep "\n" (mapAttrsToList f attrs);
+
+  cfgFile = ''
     ${optionalString (cfg.motd != "") "motd file = ${motdFile}"}
     ${optionalString (cfg.address != "") "address = ${cfg.address}"}
     ${optionalString (cfg.port != 873) "port = ${toString cfg.port}"}
     ${cfg.extraConfig}
-    ${toString (map moduleConfig (attrNames cfg.modules))}
-    '';
+    ${foreach cfg.modules (name: module: ''
+      [${name}]
+      ${foreach module (k: v:
+        "${k} = ${v}"
+      )}
+    '')}
+  '';
 in
 
 {
@@ -91,10 +90,7 @@ in
 
   config = mkIf cfg.enable {
 
-    environment.etc = singleton {
-      source = cfgFile;
-      target = "rsyncd.conf";
-    };
+    environment.etc."rsyncd.conf".text = cfgFile;
 
     systemd.services.rsyncd = {
       description = "Rsync daemon";