#!/sbin/openrc-run # Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 # default arguments : "${EXABGP_ARGS:=--env=/etc/${RC_SVCNAME}/exabgp.env /etc/${RC_SVCNAME}/exabgp.conf}" command="capsh" command_args=" --groups=${EXABGP_GROUP:=exabgp} --user=${EXABGP_USER:=exabgp} --caps='cap_net_admin+epi cap_setuid+ep-i cap_setgid+ep-i' -- -c \"/usr/bin/exabgp ${EXABGP_ARGS}\"" command_background="yes" pidfile="/run/exabgp/${RC_SVCNAME}.pid" start_stop_daemon_args=" --stdout /var/log/${RC_SVCNAME}/exabgp.log --stderr /var/log/${RC_SVCNAME}/exabgp.log" extra_started_commands="routes sessions" extra_commands="checkconfig" depend() { need net } start_pre() { checkpath -q -d -m 0755 -o "${EXABGP_USER}:${EXABGP_GROUP}" \ /run/exabgp || return checkpath -q -p -m 0600 -o "${EXABGP_USER}:${EXABGP_GROUP}" \ /run/exabgp/${RC_SVCNAME}.{in,out} || return checkconfig || return } stop_pre() { # don't restart if the configuration is bad if [ "${RC_CMD}" = restart ]; then checkconfig || return fi } checkconfig() { ebegin "Checking configuration for ${RC_SVCNAME}" exabgp -t ${EXABGP_ARGS} eend ${?} "Invalid configuration" } sessions() { ebegin "Querying sessions" exabgpcli --env /etc/${RC_SVCNAME}/exabgp.env show neighbor summary eend ${?} "exabgpcli failed" } routes() { ebegin "Querying routes" exabgpcli --env /etc/${RC_SVCNAME}/exabgp.env show adj-rib out eend ${?} "exabgpcli failed" }