From 35643676b4b836fd2f63e431aabb6a5dc44e7cb4 Mon Sep 17 00:00:00 2001 From: oddlama Date: Mon, 1 Apr 2024 14:33:50 +0200 Subject: [PATCH] feat(topology): remove cidr mask from systemd network addresses --- topology/nixos/extractors/systemd-network.nix | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/topology/nixos/extractors/systemd-network.nix b/topology/nixos/extractors/systemd-network.nix index 044a082..97e7e2c 100644 --- a/topology/nixos/extractors/systemd-network.nix +++ b/topology/nixos/extractors/systemd-network.nix @@ -8,7 +8,10 @@ any attrValues concatLists + concatStringsSep flip + init + length listToAttrs mapAttrsToList mkDefault @@ -17,7 +20,15 @@ mkMerge nameValuePair optional + splitString ; + + removeCidrMask = x: let + toks = splitString "/" x; + in + if length toks > 1 + then concatStringsSep "/" (init toks) + else builtins.head toks; in { options.topology.extractors.systemd-network.enable = mkEnableOption "topology systemd-network extractor" // {default = true;}; @@ -60,8 +71,7 @@ in { optional (interfaceName != null) { ${interfaceName} = { mac = network.matchConfig.MACAddress or null; - # TODO: FIXME: remove cidr mask - addresses = network.address ++ (network.networkConfig.Address or []); + addresses = map removeCidrMask (network.address ++ (network.networkConfig.Address or [])); gateways = network.gateway ++ (network.networkConfig.Gateway or []); }; }