#!/bin/bash
### BEGIN INIT INFO
# Provides:            bootchain
# Required-Start:      uevent udev
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       3 4 5
# Default-Stop:
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /.initrd/initenv
. /etc/init.d/template

NAME=chaind
PIDFILE="/var/run/$NAME.pid"
ARGS="--lockfile $LOCKFILE --pidfile $PIDFILE --name $NAME --displayname $NAME"

# shellcheck disable=SC2329
start() {
	local RETVAL=0

	if [ "${ROOT-}" = bootchain ] || [ "${ROOT-}" = pipeline ]; then
		start_daemon --background $ARGS "$NAME" ||
			RETVAL="$?"
	fi

	return $RETVAL
}

# shellcheck disable=SC2329
stop() {
	local PID RETVAL=0

	if [ -f "$PIDFILE" ]; then
		read -r PID <"$PIDFILE" 2>/dev/null ||
			PID=

		if [ -n "$PID" ] && kill -0 "$PID" &>/dev/null; then
			stop_daemon $ARGS "$NAME" ||
				RETVAL="$?"
		fi

		rm -f -- "$PIDFILE"
	fi

	sleep 1

	for PID in 7 6 5 4 3 2; do
		deallocvt "$PID" &>/dev/null ||:
	done

	return $RETVAL
}

switch "${1-}"
