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; }; }