summaryrefslogtreecommitdiff
path: root/games/minetest/files/minetest.in
blob: 2f1cf002309bae1647b2f2369e5a20a037a07c05 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh

# PROVIDE: minetest
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf[.local] to enable minetest server
#
# minetest_enable (bool):  Set to "NO" by default
#                          Set it to "YES" to enable minetest server
# minetest_conffile (str): Path to config file (required).
#                          (default: /usr/local/etc/minetest.conf)
# minetest_rundir (str):   Path to directory holding a pidfile.
#                          (default: /var/run/minetest)
# minetest_user (str):     User to run as
#                          (default: minetest)
# minetest_group (str):    Group to run as
#                          (default: minetest)
# minetest_logdir (str):   Path to log directory
#                          (default: /var/log/minetest)
# minetest_dbdir (str):    Path to world database directory
#                          (default: /var/db/minetest)

. /etc/rc.subr

name=minetest
rcvar=minetest_enable

load_rc_config ${name}

: ${minetest_enable="NO"}
: ${minetest_config="/usr/local/etc/minetest.conf"}
: ${minetest_rundir="/var/run/minetest"}
: ${minetest_user="minetest"}
: ${minetest_group="minetest"}
: ${minetest_logdir="/var/log/minetest"}
: ${minetest_dbdir="/var/db/minetest"}
: ${minetest_args:="--logfile ${minetest_logdir}/debug.log --world ${minetest_dbdir}/world ${minetest_flags}"}

pidfile=

case "${minetest_args}" in
*--config\ *)
	echo "Warning \$minetest_args includes --config option." \
	     "Please use \$minetest_conffile instead."
	;;
*)
	minetest_args="--config ${minetest_config} ${minetest_args}"
	;;
esac

command=/usr/sbin/daemon
procname=/usr/local/bin/minetestserver
pidfile=${minetest_rundir}/minetest.pid
command_args="-c -f -p ${pidfile} /usr/bin/env HOME='${minetest_dbdir}' ${procname} ${minetest_args}"
required_files=${minetest_config}
start_precmd=minetest_prestart

minetest_prestart () {
	if [ ! -d ${minetest_rundir} ]; then
		mkdir -m 755 -p ${minetest_rundir}
		chown -R ${minetest_user}:${minetest_group} ${minetest_rundir}
	fi
	if [ ! -d ${minetest_logdir} ]; then
		mkdir -m 755 -p ${minetest_logdir}
		chown -R ${minetest_user}:${minetest_group} ${minetest_logdir}
	fi
	if [ ! -d ${minetest_dbdir} ]; then
		mkdir -m 755 -p ${minetest_dbdir}/data
		chown -R ${minetest_user}:${minetest_group} ${minetest_dbdir}
	fi
}

run_rc_command "$1"