mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
22 lines
512 B
Nix
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);
|
|
};
|
|
}
|