1#!/bin/sh
2
3# PROVIDE: kibana
4# REQUIRE: DAEMON
5# BEFORE: LOGIN
6# KEYWORD: shutdown
7
8. /etc/rc.subr
9
10name=kibana
11rcvar=kibana_enable
12
13load_rc_config $name
14
15: ${kibana_enable:="NO"}
16: ${kibana_config:="%%ETCDIR%%/kibana.yml"}
17: ${kibana_user:="www"}
18: ${kibana_group:="www"}
19: ${kibana_log:="/var/log/kibana.log"}
20: ${kibana_syslog_output_enable:="NO"}
21: ${kibana_chdir:="%%WWWDIR%%/data"}
22
23start_precmd="kibana_start_precmd"
24reload_cmd="kibana_reload_cmd"
25extra_commands="reload"
26
27if checkyesno kibana_syslog_output_enable; then
28	if [ -n "${kibana_syslog_output_tag}" ]; then
29		kibana_syslog_output_flags="-T ${kibana_syslog_output_tag}"
30	else
31		kibana_syslog_output_flags="-T ${name}"
32	fi
33	if [ -n "${kibana_syslog_output_priority}" ]; then
34		kibana_syslog_output_flags="${kibana_syslog_output_flags} -s ${kibana_syslog_output_priority}"
35	fi
36	if [ -n "${kibana_syslog_output_facility}" ]; then
37		kibana_syslog_output_flags="${kibana_syslog_output_flags} -l ${kibana_syslog_output_facility}"
38	fi
39fi
40
41NODE="%%LOCALBASE%%/bin/node"
42
43required_files="${kibana_config}"
44_piddir="/var/run/${name}"
45pidfile="${_piddir}/${name}.pid"
46procname="${NODE}"
47
48command="/usr/sbin/daemon"
49command_args="-f ${kibana_syslog_output_flags} -p ${pidfile} -t ${name} \
50	/usr/bin/env BABEL_DISABLE_CACHE=1 NODE_ENV=production ${kibana_env} \
51	${NODE} --no-warnings --max-http-header-size=65536 \
52	%%WWWDIR%%/src/cli/dist serve \
53	--config ${kibana_config} --log-file ${kibana_log} \
54	--xpack.reporting.enabled=false ${kibana_args}"
55
56kibana_start_precmd()
57{
58	if [ ! -e "${_piddir}" ]; then
59		install -d -m 0750 -o ${kibana_user} -g ${kibana_group} ${_piddir}
60	fi
61	if [ ! -f ${kibana_log} ]; then
62		install -o ${kibana_user} -g ${kibana_group} -m 640 /dev/null ${kibana_log}
63	fi
64	if [ ! -d %%WWWDIR%%/optimize ]; then
65		install -d -o ${kibana_user} -g ${kibana_group} %%WWWDIR%%/optimize
66	else
67		# We may have installed a plugin as root which will cause files in here
68		# to be owned by root:wheel. Fix with a chown.
69		chown -R ${kibana_user}:${kibana_group} %%WWWDIR%%/optimize
70	fi
71}
72
73kibana_reload_cmd()
74{
75	if [ -z "$rc_pid" ]; then
76		_run_rc_notrunning
77		return 1
78	else
79		pkill -HUP -P ${rc_pid}
80	fi
81}
82
83run_rc_command "$1"
84