From d4e19f1dc45c6ce46ecd7206f11f018fc1774a33 Mon Sep 17 00:00:00 2001 From: niten Date: Thu, 16 Nov 2023 16:33:14 -0800 Subject: [PATCH] Stupid. --- lib.nix | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/lib.nix b/lib.nix index 9801c35..e6429b0 100644 --- a/lib.nix +++ b/lib.nix @@ -72,7 +72,7 @@ in { getSiteV4PrefixLength getSiteV6PrefixLength; fudo.types = with lib.types; rec { - networkHost = { name, ... }: { + networkHost = { hostname = mkOption { type = str; description = "Hostname"; @@ -111,6 +111,46 @@ in { }; }; - networkHosts = attrsOf (submodule networkHost); + networkHosts = let + # This is necessary because of the default 'name'...sigh. + networkHostOpt = { name, ... }: { + hostname = mkOption { + type = str; + description = "Hostname"; + default = name; + }; + + ipv4-address = mkOption { + type = nullOr str; + description = "The V4 IP of a given host, if any."; + default = null; + }; + + ipv6-address = mkOption { + type = nullOr str; + description = "The V6 IP of a given host, if any."; + default = null; + }; + + mac-address = mkOption { + type = nullOr str; + description = + "The MAC address of a given host, if desired for IP reservation."; + default = null; + }; + + description = mkOption { + type = nullOr str; + description = "Description of the host."; + default = null; + }; + + sshfp-records = mkOption { + type = listOf str; + description = "List of SSHFP records for this host."; + default = [ ]; + }; + }; + in attrsOf (submodule networkHostOpt); }; }