1#!/bin/sh
2
3# PROVIDE: opensearch_dashboards
4# REQUIRE: DAEMON
5# BEFORE: LOGIN
6# KEYWORD: shutdown
7
8. /etc/rc.subr
9
10name=opensearch_dashboards
11rcvar=opensearch_dashboards_enable
12
13load_rc_config $name
14
15: ${opensearch_dashboards_enable:="NO"}
16: ${opensearch_dashboards_config:="%%ETCDIR%%/opensearch_dashboards.yml"}
17: ${opensearch_dashboards_user:="www"}
18: ${opensearch_dashboards_group:="www"}
19: ${opensearch_dashboards_log:="/var/log/opensearch_dashboards.log"}
20: ${opensearch_dashboards_syslog_output_enable:="NO"}
21
22start_precmd="opensearch_dashboards_start_precmd"
23reload_cmd="opensearch_dashboards_reload_cmd"
24extra_commands="reload"
25
26if checkyesno opensearch_dashboards_syslog_output_enable; then
27	if [ -n "${opensearch_dashboards_syslog_output_tag}" ]; then
28		opensearch_dashboards_syslog_output_flags="-T ${opensearch_dashboards_syslog_output_tag}"
29	else
30		opensearch_dashboards_syslog_output_flags="-T ${name}"
31	fi
32	if [ -n "${opensearch_dashboards_syslog_output_priority}" ]; then
33		opensearch_dashboards_syslog_output_flags="${opensearch_dashboards_syslog_output_flags} -s ${opensearch_dashboards_syslog_output_priority}"
34	fi
35	if [ -n "${opensearch_dashboards_syslog_output_facility}" ]; then
36		opensearch_dashboards_syslog_output_flags="${opensearch_dashboards_syslog_output_flags} -l ${opensearch_dashboards_syslog_output_facility}"
37	fi
38fi
39
40NODE="%%LOCALBASE%%/bin/node"
41
42required_files="${opensearch_dashboards_config}"
43pidfile="/var/run/${name}.pid"
44
45command="/usr/sbin/daemon"
46command_args="-f ${opensearch_dashboards_syslog_output_flags} -P ${pidfile} -t ${name} \
47	/usr/bin/env NODE_ENV=production ${opensearch_dashboards_env} \
48	${NODE} %%WWWDIR%%/src/cli/dist serve \
49	--config ${opensearch_dashboards_config} --log-file ${opensearch_dashboards_log} \
50	${opensearch_dashboards_args}"
51
52opensearch_dashboards_start_precmd()
53{
54	if [ ! -e "${pidfile}" ]; then
55		install -m 0600 -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} /dev/null ${pidfile}
56	fi
57	if [ ! -f ${opensearch_dashboards_log} ]; then
58		install -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} -m 640 /dev/null ${opensearch_dashboards_log}
59	fi
60	if [ ! -d %%WWWDIR%%/optimize ]; then
61		install -d -o ${opensearch_dashboards_user} -g ${opensearch_dashboards_group} %%WWWDIR%%/optimize
62	else
63		# We may have installed a plugin as root which will cause files in here
64		# to be owned by root:wheel. Fix with a chown.
65		chown -R ${opensearch_dashboards_user}:${opensearch_dashboards_group} %%WWWDIR%%/optimize
66	fi
67}
68
69opensearch_dashboards_reload_cmd()
70{
71	if [ -z "$rc_pid" ]; then
72		_run_rc_notrunning
73		return 1
74	else
75		pkill -HUP -P ${rc_pid}
76	fi
77}
78
79run_rc_command "$1"
80