diff options
Diffstat (limited to 'databases/keydb/files/keydb.in')
-rw-r--r-- | databases/keydb/files/keydb.in | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/databases/keydb/files/keydb.in b/databases/keydb/files/keydb.in new file mode 100644 index 000000000000..3179aa20ce1f --- /dev/null +++ b/databases/keydb/files/keydb.in @@ -0,0 +1,67 @@ +#!/bin/sh + +# PROVIDE: keydb +# REQUIRE: LOGIN +# BEFORE: securelevel +# KEYWORD: shutdown + +# Add the following line to /etc/rc.conf to enable `keydb': +# +#keydb_enable="YES" +# +# Define profiles here to run separate keydb instances: +# +#keydb_profiles="foo bar" # Script uses %%PREFIX%%/etc/keydb-NAME.conf respectively. +# For correct script working please update pidfile entries in +# keydb-NAME.conf files. + +. /etc/rc.subr + +name="keydb" +rcvar="${name}_enable" + +extra_commands="reload" + +command="%%PREFIX%%/bin/keydb-server" +pidfile="%%KEYDB_RUNDIR%%/$name.pid" + +# read configuration and set defaults +load_rc_config "$name" +: ${keydb_enable="NO"} +: ${keydb_user="%%KEYDB_USER%%"} +: ${keydb_config="%%PREFIX%%/etc/$name.conf"} + +command_args="${keydb_config}" +required_files="${keydb_config}" + +_profile_exists() { + for _p in ${keydb_profiles}; do + [ "${_p}" = "$1" ] && return 1; + done + return 0 +} + +if [ $# -eq 2 ]; then + _profile=$2 + _profile_exists $_profile + _exists=$? + [ ${_exists} -ne 1 ] && { + echo "`basename %%PREFIX%%/etc/rc.d/keydb`: no '$2' in 'keydb_profiles'" + exit 1 + }; + echo "-- Profile: ${_profile} --" + config_file="%%PREFIX%%/etc/${name}-${_profile}.conf" + command_args="${config_file}" + pidfile="%%KEYDB_RUNDIR%%/${_profile}.pid" + required_files="${config_file}" +elif [ -n "${keydb_profiles}" ]; then + _swap=$*; shift; _profiles=$* + _profiles=${_profiles:-${keydb_profiles}} + set -- ${_swap} + for _profile in ${_profiles}; do + %%PREFIX%%/etc/rc.d/keydb $1 ${_profile} + done + exit 0 +fi + +run_rc_command "$1" |