{ config, lib, ... }: with lib; let cfg = config.networking.vpnc; mkServiceDef = name: value: { name = "vpnc/${name}.conf"; value = { text = value; }; }; in { options = { networking.vpnc = { services = mkOption { type = types.attrsOf types.str; default = {}; example = literalExample '' { test = ''' IPSec gateway 192.168.1.1 IPSec ID someID IPSec secret secretKey Xauth username name Xauth password pass '''; } ''; description = '' The names of cisco VPNs and their associated definitions ''; }; }; }; config.environment.etc = mapAttrs' mkServiceDef cfg.services; }