diff options
author | Silvan Mosberger <infinisil@icloud.com> | 2019-04-27 23:36:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-27 23:36:52 +0200 |
commit | 77fb90d27ef7162c4e0651ead1157de8a796205d (patch) | |
tree | de9b297ec904ce77c8a29056b43ea327eeed5de7 /nixos/modules/services | |
parent | 15010f04369429e582a4e152143f125108837002 (diff) | |
parent | 3e32e150cb327e791f2df1e7f0a1589ac885bbd7 (diff) | |
download | nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.tar nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.tar.gz nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.tar.bz2 nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.tar.lz nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.tar.xz nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.tar.zst nixlib-77fb90d27ef7162c4e0651ead1157de8a796205d.zip |
Merge pull request #59731 from ajs124/ejabberd_test
ejabberd: refactor module, add test
Diffstat (limited to 'nixos/modules/services')
-rw-r--r-- | nixos/modules/services/networking/ejabberd.nix | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/nixos/modules/services/networking/ejabberd.nix b/nixos/modules/services/networking/ejabberd.nix index ef5e2cee6f20..6a38f85c48a2 100644 --- a/nixos/modules/services/networking/ejabberd.nix +++ b/nixos/modules/services/networking/ejabberd.nix @@ -11,7 +11,7 @@ let ${cfg.ctlConfig} ''; - ectl = ''${cfg.package}/bin/ejabberdctl ${if cfg.configFile == null then "" else "--config ${cfg.configFile}"} --ctl-config "${ctlcfg}" --spool "${cfg.spoolDir}" --logs "${cfg.logsDir}"''; + ectl = ''${cfg.package}/bin/ejabberdctl ${optionalString (cfg.configFile != null) "--config ${cfg.configFile}"} --ctl-config "${ctlcfg}" --spool "${cfg.spoolDir}" --logs "${cfg.logsDir}"''; dumps = lib.escapeShellArgs cfg.loadDumps; @@ -111,28 +111,17 @@ in { description = "ejabberd server"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; - path = [ pkgs.findutils pkgs.coreutils pkgs.runit ] ++ lib.optional cfg.imagemagick pkgs.imagemagick; + path = [ pkgs.findutils pkgs.coreutils ] ++ lib.optional cfg.imagemagick pkgs.imagemagick; serviceConfig = { - ExecStart = ''${ectl} foreground''; - # FIXME: runit is used for `chpst` -- can we get rid of this? - ExecStop = ''${pkgs.runit}/bin/chpst -u "${cfg.user}:${cfg.group}" ${ectl} stop''; - ExecReload = ''${pkgs.runit}/bin/chpst -u "${cfg.user}:${cfg.group}" ${ectl} reload_config''; User = cfg.user; Group = cfg.group; - PermissionsStartOnly = true; + ExecStart = "${ectl} foreground"; + ExecStop = "${ectl} stop"; + ExecReload = "${ectl} reload_config"; }; preStart = '' - mkdir -p -m750 "${cfg.logsDir}" - chown "${cfg.user}:${cfg.group}" "${cfg.logsDir}" - - mkdir -p -m750 "/var/lock/ejabberdctl" - chown "${cfg.user}:${cfg.group}" "/var/lock/ejabberdctl" - - mkdir -p -m750 "${cfg.spoolDir}" - chown -R "${cfg.user}:${cfg.group}" "${cfg.spoolDir}" - if [ -z "$(ls -A '${cfg.spoolDir}')" ]; then touch "${cfg.spoolDir}/.firstRun" fi @@ -149,13 +138,18 @@ in { for src in ${dumps}; do find "$src" -type f | while read dump; do echo "Loading configuration dump at $dump" - chpst -u "${cfg.user}:${cfg.group}" ${ectl} load "$dump" + ${ectl} load "$dump" done done fi ''; }; + systemd.tmpfiles.rules = [ + "d '${cfg.logsDir}' 0750 ${cfg.user} ${cfg.group} -" + "d '${cfg.spoolDir}' 0700 ${cfg.user} ${cfg.group} -" + ]; + security.pam.services.ejabberd = {}; }; |