1#!/bin/sh 2 3# PROVIDE: minetest 4# REQUIRE: LOGIN 5# KEYWORD: shutdown 6# 7# Add the following line to /etc/rc.conf[.local] to enable minetest server 8# 9# minetest_enable (bool): Set to "NO" by default 10# Set it to "YES" to enable minetest server 11# minetest_config (str): Path to config file (required). 12# (default: /usr/local/etc/minetest.conf) 13# minetest_rundir (str): Path to directory holding a pidfile. 14# (default: /var/run/minetest) 15# minetest_user (str): User to run as 16# (default: minetest) 17# minetest_group (str): Group to run as 18# (default: minetest) 19# minetest_logdir (str): Path to log directory 20# (default: /var/log/minetest) 21# minetest_dbdir (str): Path to world database directory 22# (default: /var/db/minetest) 23# minetest_gameid (str): Path to world database directory 24# (default: minetest_game) 25# minetest_args (str): Additional arguments to minetestserver 26# (default: "") 27 28. /etc/rc.subr 29 30name=minetest 31rcvar=minetest_enable 32 33load_rc_config ${name} 34 35: ${minetest_enable="NO"} 36: ${minetest_config="%%PREFIX%%/etc/minetest.conf"} 37: ${minetest_rundir="/var/run/minetest"} 38: ${minetest_user="minetest"} 39: ${minetest_group="minetest"} 40: ${minetest_logdir="/var/log/minetest"} 41: ${minetest_dbdir="/var/db/minetest"} 42: ${minetest_gameid="minetest_game"} 43: ${minetest_args=""} 44 45command=/usr/sbin/daemon 46procname=/usr/local/bin/minetestserver 47pidfile=${minetest_rundir}/minetest.pid 48command_args="-c -f -p ${pidfile} /usr/bin/env HOME='${minetest_dbdir}' ${procname} --config ${minetest_config} --logfile ${minetest_logdir}/debug.log --world ${minetest_dbdir}/world --gameid ${minetest_gameid} ${minetest_args}" 49required_files=${minetest_config} 50start_precmd=minetest_prestart 51 52minetest_prestart () { 53 if ! ${procname} --gameid list | grep -q "."; then 54 echo "Warning: no games installed (\`${procname} --gameid list\` is empty). You may want to install games/minetest_game or other games from https://content.minetest.net/." 1>&2 55 fi 56 if [ ! -d ${minetest_rundir} ]; then 57 mkdir -m 755 -p ${minetest_rundir} 58 chown -R ${minetest_user}:${minetest_group} ${minetest_rundir} 59 fi 60 if [ ! -d ${minetest_logdir} ]; then 61 mkdir -m 755 -p ${minetest_logdir} 62 chown -R ${minetest_user}:${minetest_group} ${minetest_logdir} 63 fi 64 if [ ! -d ${minetest_dbdir} ]; then 65 mkdir -m 755 -p ${minetest_dbdir}/data 66 chown -R ${minetest_user}:${minetest_group} ${minetest_dbdir} 67 fi 68} 69 70run_rc_command "$1" 71