aboutsummaryrefslogtreecommitdiff
path: root/databases/couchdb2/files/couchdb2.in
diff options
context:
space:
mode:
Diffstat (limited to 'databases/couchdb2/files/couchdb2.in')
-rw-r--r--databases/couchdb2/files/couchdb2.in89
1 files changed, 89 insertions, 0 deletions
diff --git a/databases/couchdb2/files/couchdb2.in b/databases/couchdb2/files/couchdb2.in
new file mode 100644
index 000000000000..bf5429c74bd7
--- /dev/null
+++ b/databases/couchdb2/files/couchdb2.in
@@ -0,0 +1,89 @@
+#!/bin/sh
+
+# $FreeBSD$
+#
+# PROVIDE: couchdb2
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# couchdb2_enable (bool): Set to NO by default.
+# Set it to YES to enable couchdb2.
+
+. /etc/rc.subr
+
+name="couchdb2"
+rcvar=couchdb2_enable
+
+start_cmd="${name}_start"
+stop_cmd="${name}_stop"
+status_cmd="${name}_status"
+
+load_rc_config $name
+
+: ${couchdb2_enable:="NO"}
+: ${couchdb2_user="couchdb"}
+: ${couchdb2_erl_flags="-couch_ini %%APPDIR%%/etc/default.ini %%ETCDIR%%/local.ini"}
+
+command="%%ERL_PATH%%"
+pidfile="/var/run/${name}.pid"
+daemonpidfile="/var/run/${name}-daemon.pid"
+
+erl_sasl='-sasl releases_dir \"%%PORTNAME%%/releases\"'
+erl_boot='-boot %%RELDIR%%/couchdb -boot_var RELTOOL_EXT_LIB %%APPDIR%%/lib'
+erl_args='-args_file %%ETCDIR%%/vm.args'
+erl_flags="${erl_sasl} ${erl_boot} ${erl_args} ${couchdb2_erl_flags}"
+
+couchdb2_start()
+{
+ /usr/sbin/daemon -p ${pidfile} \
+ -P ${daemonpidfile} \
+ -t ${name} \
+ -c \
+ -u ${couchdb2_user} \
+ env ERL_FLAGS="${erl_flags}" \
+ ${command}
+}
+
+couchdb2_stop()
+{
+ echo -n "Stopping ${name}: "
+ retval=0
+ if ! status_quiet
+ then
+ echo "already stopped"
+ return 1
+ else
+ couchdb2_pids=$(/bin/pgrep -ifU ${couchdb2_user} ${name})
+ kill ${couchdb2_pids}
+ wait_for_pids ${couchdb2_pids}
+ retval=$?
+ echo "stopped"
+ fi
+ return $retval
+}
+
+couchdb2_status()
+{
+ /bin/pgrep -ifU ${couchdb2_user} ${name} > /dev/null && status="$?" || status="$?"
+ if [ "${status}" = 0 ]; then
+ echo "${name} is running"
+ return 0
+ elif [ "${status}" = 4 ]; then
+ echo "could not access PID file for ${name}"
+ return ${status}
+ else
+ echo "${name} is not running"
+ return ${status}
+ fi
+}
+
+status_quiet()
+{
+ couchdb2_status >/dev/null 2>&1
+}
+
+run_rc_command $1
+