{ config, lib, pkgs, ... }: with lib; let cfg = config.clerie.akne; in { options = { clerie.akne = { enable = mkEnableOption "Makes fun stuff with the nixos acme module."; selfSignedOnlyHostNames = mkOption { type = with types; listOf str; default = {}; description = "List of hostnames for which the acme client gets disabled. This hostnames use the self-signed certs instead."; }; }; }; config = { systemd.services = with lib; listToAttrs ( flatten ( map ( name: [ ( nameValuePair "acme-${name}" { enable = false; wantedBy = mkForce []; } ) ( nameValuePair "acme-selfsigned-${name}" { wantedBy = [ "multi-user.target" ]; } ) ] ) cfg.selfSignedOnlyHostNames ) ); systemd.targets = with lib; listToAttrs ( flatten ( map ( name: [ ( nameValuePair "acme-finished-${name}" { after = mkForce []; requires = mkForce []; } ) ] ) cfg.selfSignedOnlyHostNames ) ); }; }