Changeset View
Changeset View
Standalone View
Standalone View
databases/couchdb3/files/couchdb3.in
- This file was added.
| #!/bin/sh | |||||
| # $FreeBSD$ | |||||
| # | |||||
| # PROVIDE: couchdb3 | |||||
| # REQUIRE: LOGIN | |||||
| # KEYWORD: shutdown | |||||
| # | |||||
| # Add the following lines to /etc/rc.conf.local or /etc/rc.conf | |||||
| # to enable this service: | |||||
| # | |||||
| # couchdb3_enable (bool): Set to NO by default. | |||||
| # Set it to YES to enable couchdb3. | |||||
| . /etc/rc.subr | |||||
| name="couchdb3" | |||||
| rcvar=couchdb3_enable | |||||
| start_cmd="${name}_start" | |||||
| stop_cmd="${name}_stop" | |||||
| status_cmd="${name}_status" | |||||
| load_rc_config $name | |||||
| : ${couchdb3_enable:="NO"} | |||||
| : ${couchdb3_user="couchdb"} | |||||
| : ${couchdb3_erl_flags="-couch_ini %%APPDIR%%/etc/default.ini %%ETCDIR%%/local.ini"} | |||||
| : ${couchdb3_chdir="/var/db/%%PORTNAME%%"} | |||||
| 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} ${couchdb3_erl_flags}" | |||||
| couchdb3_start() | |||||
| { | |||||
| # chdir manually as overriding _start() blocks rc.subr defaults | |||||
| cd "${couchdb3_chdir}" | |||||
| /usr/sbin/daemon -p ${pidfile} \ | |||||
| -P ${daemonpidfile} \ | |||||
| -t ${name} \ | |||||
| -u ${couchdb3_user} \ | |||||
| env ERL_FLAGS="${erl_flags}" \ | |||||
| HOME=/var/run/couchdb3 \ | |||||
| ERL_CRASH_DUMP=/var/run/couchdb3/erl_crash.dump \ | |||||
| COUCHDB_QUERY_SERVER_JAVASCRIPT="%%APPDIR%%/bin/couchjs %%APPDIR%%/share/server/main.js" \ | |||||
| COUCHDB_QUERY_SERVER_COFFEESCRIPT="%%APPDIR%%/bin/couchjs %%APPDIR%%/share/server/main-coffee.js" \ | |||||
| ${command} | |||||
| } | |||||
| couchdb3_stop() | |||||
| { | |||||
| echo -n "Stopping ${name}: " | |||||
| retval=0 | |||||
| if ! status_quiet | |||||
| then | |||||
| echo "already stopped" | |||||
| return 1 | |||||
| else | |||||
| couchdb3_pids=$(/bin/pgrep -ifU ${couchdb3_user} ${name}) | |||||
| kill ${couchdb3_pids} | |||||
| wait_for_pids ${couchdb3_pids} | |||||
| retval=$? | |||||
| echo "stopped" | |||||
| fi | |||||
| return $retval | |||||
| } | |||||
| couchdb3_status() | |||||
| { | |||||
| /bin/pgrep -ifU ${couchdb3_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() | |||||
| { | |||||
| couchdb3_status >/dev/null 2>&1 | |||||
| } | |||||
| run_rc_command $1 | |||||