1#!/bin/sh
2
3# PROVIDE: redis
4# REQUIRE: LOGIN
5# BEFORE:  securelevel
6# KEYWORD: shutdown
7
8# Add the following line to /etc/rc.conf to enable `redis':
9#
10#redis_enable="YES"
11#
12# Define profiles here to run separate redis instances:
13#
14#redis_profiles="foo bar" #  Script uses %%PREFIX%%/etc/redis-NAME.conf respectively.
15#			     For correct script working please update pidfile entries in
16#			     redis-NAME.conf files.
17
18. /etc/rc.subr
19
20name="redis"
21rcvar="${name}_enable"
22
23extra_commands="reload"
24
25command="%%PREFIX%%/bin/redis-server"
26pidfile="%%REDIS_RUNDIR%%/$name.pid"
27
28# read configuration and set defaults
29load_rc_config "$name"
30: ${redis_enable="NO"}
31: ${redis_user="%%REDIS_USER%%"}
32: ${redis_config="%%PREFIX%%/etc/$name.conf"}
33
34command_args="${redis_config}"
35required_files="${redis_config}"
36
37_profile_exists() {
38	for _p in ${redis_profiles}; do
39		[ "${_p}" = "$1" ] && return 1;
40	done
41	return 0
42}
43
44if [ $# -eq 2 ]; then
45	_profile=$2
46	_profile_exists $_profile
47	_exists=$?
48	[ ${_exists} -ne 1 ] && {
49		echo "`basename %%PREFIX%%/etc/rc.d/redis`: no '$2' in 'redis_profiles'"
50		exit 1
51	};
52	echo "-- Profile: ${_profile} --"
53	config_file="%%PREFIX%%/etc/${name}-${_profile}.conf"
54	command_args="${config_file}"
55	pidfile="%%REDIS_RUNDIR%%/${_profile}.pid"
56	required_files="${config_file}"
57elif [ -n "${redis_profiles}" ]; then
58	_swap=$*; shift; _profiles=$*
59	_profiles=${_profiles:-${redis_profiles}}
60	set -- ${_swap}
61	for _profile in ${_profiles}; do
62		%%PREFIX%%/etc/rc.d/redis $1 ${_profile}
63	done
64	exit 0
65fi
66
67run_rc_command "$1"
68