21 lines
721 B
Nix
21 lines
721 B
Nix
{ lib }:
|
|
rec {
|
|
# checks if given listener configuration has type as a resource
|
|
isListenerType = type: l: lib.any (r: lib.any (n: n == type) r.names) l.resources;
|
|
# Get the first listener that includes the given resource from worker
|
|
firstListenerOfType = type: ls: lib.lists.findFirst (isListenerType type)
|
|
(lib.throw "No listener with resource: ${type} configured")
|
|
ls;
|
|
# Get an attrset of the host and port from a listener
|
|
connectionInfo = l: {
|
|
host = lib.head l.bind_addresses;
|
|
port = l.port;
|
|
};
|
|
|
|
# Get an attrset of the host and port from a worker given a type
|
|
workerConnectionResource = r: w: let
|
|
l = firstListenerOfType r w.settings.worker_listeners;
|
|
in connectionInfo l;
|
|
|
|
}
|