infrastructure/nixos/wyoming/wyoming.nix
2024-09-30 21:05:26 -07:00

22 lines
512 B
Nix

{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkMerge;
inherit (lib.attrsets) mapAttrsToList;
cfgs = config.services.wyoming;
in {
config = {
networking.firewall.interfaces.lan.allowedTCPPorts = let
mkServerPort = _: server: mkIf (server.enable && server ? port) server.port;
mkServicePorts = name: cfg:
mapAttrsToList mkServerPort
cfg.servers
or {
${name} = cfg;
};
in
mkMerge (mapAttrsToList mkServicePorts cfgs);
};
}