#!/bin/sh
#
# Start linuxptp
#

DAEMON="phc2sys"

PIDFILE="/var/run/$DAEMON.pid"

PHC2SYS_ARGS="-a -r -S 1.0"

# shellcheck source=/dev/null
[ -r "/etc/default/phc2sys" ] && . "/etc/default/phc2sys"

start() {
	printf "Starting linuxptp system clock synchronization: "
	start-stop-daemon -S -b -q -m -p $PIDFILE \
		-x /usr/sbin/$DAEMON -- $PHC2SYS_ARGS
	status=$?
	if [ "$status" -eq 0 ]; then
		echo "OK"
	else
		echo "FAIL"
	fi
	return $status
}

stop() {
	printf "Stopping linuxptp system clock synchronization: "
	start-stop-daemon -K -q -p $PIDFILE
	status=$?
	if [ "$status" -eq 0 ]; then
		rm -f "$PIDFILE"
		echo "OK"
	else
		echo "FAIL"
	fi
	return $status
}

case "$1" in
  start)
	start
	;;
  stop)
	stop
	;;
  restart|reload)
	stop
	start
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	exit 1
esac

exit $?
