aboutsummaryrefslogtreecommitdiff
path: root/databases/keydb/files/keydb.in
diff options
context:
space:
mode:
Diffstat (limited to 'databases/keydb/files/keydb.in')
-rw-r--r--databases/keydb/files/keydb.in67
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"