# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

EAPI=5

DESCRIPTION="Stackdriver Agent Service for Logging"
SRC_URI=""

inherit systemd

LICENSE="BSD-Google"
SLOT="0"
KEYWORDS="*"
IUSE=""

DEPEND=""
RDEPEND="${DEPEND}
	sys-apps/systemd
	!app-admin/fluent-bit
"

S="${WORKDIR}"

src_install() {
	# fluentd config used by stackdriver logging agent
	insinto /etc/stackdriver/logging.config.d
	doins "${FILESDIR}"/logging_configs/*.conf


	# Envionment variables used by all stackdriver agent services
	insinto /etc/stackdriver
	doins "${FILESDIR}"/env_vars

	systemd_dounit "${FILESDIR}"/docker-events-collector.service
	systemd_dounit "${FILESDIR}"/stackdriver-logging.service
	systemd_dounit "${FILESDIR}"/logging-agent.target
}
