nixos: fix cjdns json config

filter extraneous attributes from config modules

Changed files
+13 -8
nixos
modules
services
networking
+13 -8
nixos/modules/services/networking/cjdns.nix
···
})
else "";
+
parseModules = x:
+
x // { connectTo = mapAttrs (name: value: { inherit (value) password publicKey; }) x.connectTo; };
+
# would be nice to merge 'cfg' with a //,
# but the json nesting is wacky.
cjdrouteConf = builtins.toJSON ( {
···
};
authorizedPasswords = map (p: { password = p; }) cfg.authorizedPasswords;
interfaces = {
-
ETHInterface = if (cfg.ETHInterface.bind != "") then [ cfg.ETHInterface ] else [ ];
-
UDPInterface = if (cfg.UDPInterface.bind != "") then [ cfg.UDPInterface ] else [ ];
+
ETHInterface = if (cfg.ETHInterface.bind != "") then [ (parseModules cfg.ETHInterface) ] else [ ];
+
UDPInterface = if (cfg.UDPInterface.bind != "") then [ (parseModules cfg.UDPInterface) ] else [ ];
};
privateKey = "@CJDNS_PRIVATE_KEY@";
···
ETHInterface = {
bind = mkOption {
-
default = "";
-
example = "eth0";
-
description = ''
-
Bind to this device for native ethernet operation.
-
'';
-
};
+
default = "";
+
example = "eth0";
+
description =
+
''
+
Bind to this device for native ethernet operation.
+
<literal>all</literal> is a pseudo-name which will try to connect to all devices.
+
'';
+
};
beacon = mkOption {
type = types.int;