orchard: 0.26.3 -> 0.26.4 (#377709)
[NixPkgs.git] / nixos / modules / services / system / saslauthd.nix
blob333cc5a4ba11f9842878c68b4d990187bce4009b
2   config,
3   lib,
4   pkgs,
5   ...
6 }:
7 let
9   cfg = config.services.saslauthd;
15   ###### interface
17   options = {
19     services.saslauthd = {
21       enable = lib.mkEnableOption "saslauthd, the Cyrus SASL authentication daemon";
23       package = lib.mkPackageOption pkgs [ "cyrus_sasl" "bin" ] { };
25       mechanism = lib.mkOption {
26         type = lib.types.str;
27         default = "pam";
28         description = "Auth mechanism to use";
29       };
31       config = lib.mkOption {
32         type = lib.types.lines;
33         default = "";
34         description = "Configuration to use for Cyrus SASL authentication daemon.";
35       };
37     };
39   };
41   ###### implementation
43   config = lib.mkIf cfg.enable {
45     systemd.services.saslauthd = {
46       description = "Cyrus SASL authentication daemon";
48       wantedBy = [ "multi-user.target" ];
50       serviceConfig = {
51         ExecStart = "@${cfg.package}/sbin/saslauthd saslauthd -a ${cfg.mechanism} -O ${pkgs.writeText "saslauthd.conf" cfg.config}";
52         Type = "forking";
53         PIDFile = "/run/saslauthd/saslauthd.pid";
54         Restart = "always";
55       };
56     };
57   };