From 60ddfaa0ada1a4de551823c452d27df8214a5686 Mon Sep 17 00:00:00 2001 From: Kiara Grouwstra Date: Mon, 3 Nov 2025 16:16:11 +0100 Subject: [PATCH] factor out evaluating options Signed-off-by: Kiara Grouwstra --- deployment/check/netbox-ips/nixosTest.nix | 33 +++++++---------------- deployment/utils.nix | 13 +++++++++ 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/deployment/check/netbox-ips/nixosTest.nix b/deployment/check/netbox-ips/nixosTest.nix index 069f225e..d9ee84a3 100644 --- a/deployment/check/netbox-ips/nixosTest.nix +++ b/deployment/check/netbox-ips/nixosTest.nix @@ -6,6 +6,7 @@ }: let inherit (pkgs) system; + inherit (pkgs.callPackage ../../utils.nix { }) evalOption; backendPort = builtins.toString 8080; tfBackend = fragment: { address = "http://localhost:${backendPort}/state/${fragment}"; @@ -17,30 +18,14 @@ let tf-netbox-store-ips tf-netbox-get-ip ; - netbox-store-ips = - (lib.evalModules { - modules = [ - { - options = { inherit tf-netbox-store-ips; }; - config.tf-netbox-store-ips = { - httpBackend = tfBackend "proxmox-test/store-ips"; - startAddress = "192.168.10.236/24"; - endAddress = "192.168.10.240/24"; - }; - } - ]; - }).config.tf-netbox-store-ips; - netbox-get-ip = - (lib.evalModules { - modules = [ - { - options = { inherit tf-netbox-get-ip; }; - config.tf-netbox-get-ip = { - httpBackend = tfBackend "proxmox-test/get-ip"; - }; - } - ]; - }).config.tf-netbox-get-ip; + netbox-store-ips = evalOption "tf-netbox-store-ips" tf-netbox-store-ips { + httpBackend = tfBackend "proxmox-test/store-ips"; + startAddress = "192.168.10.236/24"; + endAddress = "192.168.10.240/24"; + }; + netbox-get-ip = evalOption "tf-netbox-get-ip" tf-netbox-get-ip { + httpBackend = tfBackend "proxmox-test/get-ip"; + }; netboxUser = "netbox"; netboxPassword = "netbox"; changePassword = pkgs.writeText "change-password.py" '' diff --git a/deployment/utils.nix b/deployment/utils.nix index 123669e4..992f465a 100644 --- a/deployment/utils.nix +++ b/deployment/utils.nix @@ -18,6 +18,19 @@ rec { ]; }).config; + evalOption = + name: opts: conf: + (lib.evalModules { + modules = [ + { + options = { + "${name}" = opts; + }; + config."${name}" = conf; + } + ]; + }).config."${name}"; + toBash = v: lib.replaceStrings [ "\"" ] [ "\\\"" ] (