33 lines
858 B
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}"
|
|
{};
|
|
}
|