vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / system / saslauthd.nix
blob0c198792b1e78983f714e42194c67308251e90bc
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   cfg = config.services.saslauthd;
9 in
13   ###### interface
15   options = {
17     services.saslauthd = {
19       enable = mkEnableOption "saslauthd, the Cyrus SASL authentication daemon";
21       package = mkPackageOption pkgs [ "cyrus_sasl" "bin" ] { };
23       mechanism = mkOption {
24         type = types.str;
25         default = "pam";
26         description = "Auth mechanism to use";
27       };
29       config = mkOption {
30         type = types.lines;
31         default = "";
32         description = "Configuration to use for Cyrus SASL authentication daemon.";
33       };
35     };
37   };
40   ###### implementation
42   config = mkIf cfg.enable {
44     systemd.services.saslauthd = {
45       description = "Cyrus SASL authentication daemon";
47       wantedBy = [ "multi-user.target" ];
49       serviceConfig = {
50         ExecStart = "@${cfg.package}/sbin/saslauthd saslauthd -a ${cfg.mechanism} -O ${pkgs.writeText "saslauthd.conf" cfg.config}";
51         Type = "forking";
52         PIDFile = "/run/saslauthd/saslauthd.pid";
53         Restart = "always";
54       };
55     };
56   };