Added loadDumps option, which makes it possible to load a specific ejabberd configuration on the first startup
svn path=/nixos/branches/upstart-0.6/; revision=18461
This commit is contained in:
parent
a5cdfcbdb2
commit
9b000b3dcf
1 changed files with 33 additions and 0 deletions
|
@ -41,6 +41,11 @@ in
|
|||
description = "Virtualhosts that ejabberd should host. Hostnames are surrounded with doublequotes and separated by commas";
|
||||
};
|
||||
|
||||
loadDumps = mkOption {
|
||||
default = [];
|
||||
description = "Configuration dump that should be loaded on the first startup";
|
||||
example = [ ./myejabberd.dump ];
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
@ -68,6 +73,7 @@ in
|
|||
|
||||
if ! test -d ${cfg.spoolDir}
|
||||
then
|
||||
initialize=1
|
||||
cp -av ${pkgs.ejabberd}/var/lib/ejabberd /var/lib
|
||||
fi
|
||||
|
||||
|
@ -79,6 +85,33 @@ in
|
|||
fi
|
||||
|
||||
ejabberdctl --config-dir ${cfg.confDir} --logs ${cfg.logsDir} --spool ${cfg.spoolDir} start
|
||||
|
||||
${if cfg.loadDumps == [] then "" else
|
||||
''
|
||||
# Wait until the ejabberd server is available for use
|
||||
count=0
|
||||
while ! ejabberdctl --config-dir ${cfg.confDir} --logs ${cfg.logsDir} --spool ${cfg.spoolDir} status
|
||||
do
|
||||
if [ $count -eq 30 ]
|
||||
then
|
||||
echo "Tried 30 times, giving up..."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Ejabberd daemon not yet started. Waiting for 1 second..."
|
||||
count=$((count++))
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if [ "$initialize" = "1" ]
|
||||
then
|
||||
${concatMapStrings (dump:
|
||||
''
|
||||
echo "Importing dump: ${dump}"
|
||||
ejabberdctl --config-dir ${cfg.confDir} --logs ${cfg.logsDir} --spool ${cfg.spoolDir} load ${dump}
|
||||
'') cfg.loadDumps}
|
||||
fi
|
||||
''}
|
||||
'';
|
||||
|
||||
postStop =
|
||||
|
|
Loading…
Reference in a new issue