etc-gentoo/init.d/sauerbraten

87 lines
2.1 KiB
Plaintext
Executable File

#!/sbin/runscript
rundir=${rundir:-/var/run/sauerbraten}
depend() {
use net
}
start() {
[ $(echo ${RUNMASTER} | tr '[:upper:]' '[:lower:]') = "yes" ] && start_master
[ $(echo ${RUNSERVER} | tr '[:upper:]' '[:lower:]') = "yes" ] && start_server
true
}
start_server() {
ebegin "Starting Sauerbraten dedicated server"
# Make sure necessary parameters are set
SERVERCONFIG="${SERVERCONFIG:-/var/lib/games/sauerbraten}"
if [ ! -d ${SERVERCONFIG} ]; then
einfo "No ${SERVERCONFIG} around. Creating new..."
mkdir ${SERVERCONFIG}
chown ${USER}:${GROUP} ${SERVERCONFIG}
fi
[ -d ${rundir} ] || {
mkdir -p "${rundir}"
chown -R ${USER}:${GROUP} "${rundir}"
}
start-stop-daemon \
--quiet --start --user ${USER}:${GROUP} --chdir ${SERVERCONFIG} \
--make-pidfile --pidfile "${rundir}"/server.pid \
--background --exec /usr/libexec/sauerbraten/sauer_server -- ${SERVERARGS}
eend $?
}
start_master() {
ebegin "Starting Sauerbraten master server"
# Make sure necessary parameters are set
MASTERCONFIG="${MASTERCONFIG:-/var/lib/games/sauerbraten}"
[ -n "${MASTERIP}" ] && MASTERPORT="${MASTERPORT:-28787}"
MASTERARGS="${MASTERCONFIG}/ ${MASTERPORT} ${MASTERIP}"
if [ ! -d ${MASTERCONFIG} ]; then
einfo "No ${MASTERCONFIG} around. Creating new..."
mkdir ${MASTERCONFIG}
chown ${USER}:${GROUP} ${MASTERCONFIG}
fi
[ -d ${rundir} ] || {
mkdir -p "${rundir}"
chown -R ${USER}:${GROUP} "${rundir}"
}
start-stop-daemon \
--quiet --start --user ${USER}:${GROUP} \
--make-pidfile --pidfile "${rundir}"/master.pid \
--background --exec /usr/libexec/sauerbraten/sauer_master -- ${MASTERARGS}
eend $?
}
stop() {
[ $(echo ${RUNSERVER} | tr '[:upper:]' '[:lower:]') = "yes" ] && stop_server
[ $(echo ${RUNMASTER} | tr '[:upper:]' '[:lower:]') = "yes" ] && stop_master
true
}
stop_server() {
ebegin "Stopping Sauerbraten dedicated server"
start-stop-daemon --stop --retry 3 --pidfile "${rundir}"/server.pid
eend $?
}
stop_master() {
ebegin "Stopping Sauerbraten master server"
start-stop-daemon --stop --retry 3 --pidfile "${rundir}"/master.pid
eend $?
}
restart() {
svc_stop
svc_start
}