## NOTE: Not a module, but a helper function to create options for Fediversity ## services, as they tend to require the same ones. { config, lib, serviceName, serviceDocName, }: let inherit (lib) mkOption mkEnableOption; inherit (lib.types) types; in { enable = mkEnableOption "Enable a ${serviceDocName} server on the machine"; s3AccessKeyFile = mkOption { type = types.nullOr types.path; description = '' S3 access key for ${serviceDocName}'s bucket/s In AWS CLI, this would be AWS_ACCESS_KEY_ID. The S3 bucket is only created when non-`null`. ''; default = null; }; s3SecretKeyFile = mkOption { type = types.nullOr types.path; description = '' S3 secret key for ${serviceDocName}'s bucket/s In AWS CLI, this would be AWS_SECRET_ACCESS_KEY. The S3 bucket is only created when non-`null`. ''; default = null; }; domain = mkOption { type = types.str; description = "Internal option — change at your own risk"; default = "${serviceName}.${config.fediversity.domain}"; }; }