1
0
nixfiles/modules/akne/default.nix

56 lines
1.3 KiB
Nix

{ 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 [ "acme-selfsigned-${name}.service" ];
requires = mkForce [ "acme-selfsigned-${name}.service" ];
}
)
]
) cfg.selfSignedOnlyHostNames
)
);
};
}