From 5dc4ddb4f571ad82cc1c2897462c9dfbd335ccca Mon Sep 17 00:00:00 2001 From: Jo Date: Wed, 25 Feb 2026 02:19:54 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=F0=9F=9A=A7=20Add=20mkService=20helpe?= =?UTF-8?q?r?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/options/default.nix | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/options/default.nix b/lib/options/default.nix index 9de9d8f..d3abe2f 100644 --- a/lib/options/default.nix +++ b/lib/options/default.nix @@ -15,7 +15,24 @@ let inherit default description; type = lib.types.bool; }; + + # Create a full service option definition + mkService = + name: + { + subdomain ? name, + sopsFile ? null, + sopsFormat ? "dotenv", + extraOptions ? { }, + }: + { + enable = lib.mkEnableOption "${name} service."; + sopsFile = mkOpt (lib.types.nullOr lib.types.path) sopsFile "Sops secret file for ${name}."; + sopsFormat = mkOpt lib.types.str sopsFormat "Sops secret file format for ${name}."; + subdomain = mkOpt lib.types.str subdomain "Subdomain to expose ${name} on."; + } + // extraOptions; in { - options = { inherit mkOpt mkBool; }; + options = { inherit mkOpt mkBool mkService; }; } -- 2.51.2