network/nix/lib/default.nix

33 lines
858 B
Nix

{ self, pkgs, openwrt }:
rec {
config = (import ./config { inherit self pkgs; }).config;
netmasks = import ./netmasks.nix;
subnet = import ./subnet { inherit pkgs; };
dns = import ./dns.nix { inherit pkgs config; };
openwrtModels = import ./openwrt-models.nix { inherit self openwrt; };
getOpenwrtModel = wantedModel:
let
models =
builtins.filter ({ models, ... }:
self.lib.any ({ model, vendor, ... }:
model == wantedModel ||
"${vendor}_${model}" == wantedModel
) models
) openwrtModels;
result =
builtins.foldl' (result: { data, ... }:
self.lib.recursiveUpdate result data
) {} models;
in
if builtins.length models > 0
then result
else builtins.trace "No data found for OpenWRT model ${wantedModel}"
{};
}