23 lines
664 B
Nix
23 lines
664 B
Nix
{ self, nixpkgs, system }:
|
|
with nixpkgs.legacyPackages.${system};
|
|
let
|
|
config = self.lib.config;
|
|
in
|
|
writeText "vlan-report.txt" (
|
|
lib.concatMapStrings (net: ''
|
|
## ${net}${lib.optionalString (config.site.net.${net}.vlan != null) " (VLAN ${toString config.site.net.${net}.vlan})"}
|
|
${lib.concatStringsSep "\n" (
|
|
lib.concatMap (host:
|
|
map (target: "- ${host} -> ${target}") (
|
|
builtins.attrNames (
|
|
lib.filterAttrs (_: { nets, ... }:
|
|
lib.elem net nets
|
|
) config.site.hosts.${host}.links
|
|
)
|
|
)
|
|
) (lib.attrNames config.site.hosts)
|
|
)}
|
|
|
|
'') (lib.attrNames config.site.net)
|
|
)
|