Updated ejabberd service to make it work

svn path=/nixos/trunk/; revision=12270
This commit is contained in:
Sander van der Burg 2008-07-06 10:30:53 +00:00
parent 7813be5e54
commit 045ae06092
2 changed files with 31 additions and 15 deletions

View file

@ -1385,10 +1385,15 @@
default = false;
description = "Whether to enable ejabberd server";
};
spoolDir = mkOption {
default = "/var/lib/ejabberd";
description = "Location of the spooldir of ejabberd";
};
user = mkOption {
default = "nobody";
description = "User account under which ejabberd runs.";
logsDir = mkOption {
default = "/var/log/ejabberd";
description = "Location of the logfile directory of ejabberd";
};
};

View file

@ -4,19 +4,30 @@ let
cfg = config.services.ejabberd;
ejabberdService = import ../services/ejabberd {
inherit (cfg) user;
inherit (pkgs) stdenv erlang ejabberd su;
};
in
{
name = "ejabberd";
job = "
description \"EJabberd server\"
name = "ejabberd";
job = ''
description "EJabberd server"
stop on shutdown
respawn ${ejabberdService}/bin/control start
";
start on network-interface/started
stop on network-interfaces/stop
start script
# Initialise state data
mkdir -p ${cfg.logsDir}
if ! test -d ${cfg.spoolDir}
then
cp -av ${pkgs.ejabberd}/var/lib/ejabberd /var/lib
fi
end script
respawn ${pkgs.bash}/bin/sh -c 'export PATH=$PATH:${pkgs.ejabberd}/sbin; cd ~; ejabberdctl --logs ${cfg.logsDir} --spool ${cfg.spoolDir} start; sleep 1d'
stop script
${pkgs.ejabberd}/sbin/ejabberdctl stop
end script
'';
}