#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

FILEBEAT_USER="${FILEBEAT_USER:-root}"
FILEBEAT_GROUP="${FILEBEAT_GROUP:-root}"
FILEBEAT_CONFIG="${FILEBEAT_CONFIG:-/etc/filebeat/filebeat.yml}"
FILEBEAT_DATADIR="${FILEBEAT_DATADIR:-/var/lib/filebeat}"
FILEBEAT_LOGDIR="${FILEBEAT_LOGDIR:-/var/log/filebeat}"
FILEBEAT_OPTS="${FILEBEAT_OPTS:-}"

command="/usr/bin/filebeat"
command_args="-c ${FILEBEAT_CONFIG} ${FILEBEAT_OPTS} -path.config $(dirname $FILEBEAT_CONFIG) \
	-path.data ${FILEBEAT_DATADIR} -path.home ${FILEBEAT_DATADIR} -path.logs ${FILEBEAT_LOGDIR}"
command_background="true"
command_user="${FILEBEAT_USER}:${FILEBEAT_GROUP}"
extra_commands="checkconfig"
pidfile="/run/filebeat.pid"
retry="TERM/5/KILL/5"
start_stop_daemon_args="--chdir ${FILEBEAT_DATADIR}"

depend() {
	use net
	after elasticsearch
}

checkconfig() {
	if [ ! -e ${FILEBEAT_CONFIG} ]; then
		eend "Please create a configuration file at ${FILEBEAT_CONFIG}"
		return 1
	fi

	ebegin "Checking your configuration"
	${command} ${command_args} test config
	eend $? "Configuration error. Please fix your configuration files."
}

start_pre() {
	checkconfig || return 1

	checkpath -d -o "${FILEBEAT_USER}":"${FILEBEAT_GROUP}" -m750 "${FILEBEAT_DATADIR}"
	checkpath -d -o "${FILEBEAT_USER}":"${FILEBEAT_GROUP}" -m750 "${FILEBEAT_LOGDIR}"
}
