# Copyright 2017 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

inherit systemd

DESCRIPTION="Package that installs and configures system-sysdaemons.slice"
LICENSE="BSD-Google"
SLOT="0"
KEYWORDS="*"
S="${WORKDIR}"

# TODO(xueweiz): Add node-problem-detector.service when it is in Lakitu.
SERVICES="
	device_policy_manager.service
	google-accounts-daemon.service
	google-clock-skew-daemon.service
	google-network-daemon.service
	google-osconfig-agent.service
	metrics-daemon.service
	update-engine.service
"


src_install() {
	local -r unitdir=$(systemd_get_unitdir)

	insinto "${unitdir}"
	doins "${FILESDIR}"/system-sysdaemons.slice

	for service in ${SERVICES[@]}; do
		insinto "${unitdir}"/"${service}".d
		doins "${FILESDIR}"/00-system-sysdaemons-slice.conf
	done
}
