#!/bin/sh
#
# Init file for DesktopVideoHelper
#
# chkconfig: 2345 55 25
# description: Handle hardware preference changes
#
# processname: DesktopVideoHelper
# pidfile: /var/run/DesktopVideoHelper.pid

### BEGIN INIT INFO
# Provides:          DesktopVideoHelper
# Required-Start:    $local_fs $remote_fs $syslog
# Required-Stop:     $local_fs $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Handle hardware preference changes
# Description: Handle hardware preference changes
### END INIT INFO


#** -LICENSE-START-
#** Copyright (c) 2013 Blackmagic Design
#**
#** Permission is hereby granted, free of charge, to any person or organization
#** obtaining a copy of the software and accompanying documentation covered by
#** this license (the "Software") to use, reproduce, display, distribute,
#** execute, and transmit the Software, and to prepare derivative works of the
#** Software, and to permit third-parties to whom the Software is furnished to
#** do so, all subject to the following:
#**
#** The copyright notices in the Software and this entire statement, including
#** the above license grant, this restriction and the following disclaimer,
#** must be included in all copies of the Software, in whole or in part, and
#** all derivative works of the Software, unless such copies or derivative
#** works are solely in the form of machine-executable object code generated by
#** a source language processor.
#**
#** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
#** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
#** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
#** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
#** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
#** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
#** DEALINGS IN THE SOFTWARE.
#** -LICENSE-END-

PROG=DesktopVideoHelper
EXEC=/usr/lib/blackmagic/DesktopVideo/${PROG}
PID_FILE=/var/run/${PROG}.pid

set -e

get_pid()
{
	if [ -r ${PID_FILE} ]; then
		PID=$(cat ${PID_FILE})
		if readlink /proc/${PID}/exe | grep "^$EXEC" > /dev/null 2>&1; then
			echo ${PID}
		fi
	fi
}

start()
{
	RETVAL=0
	if [ -z "$(get_pid)" ]; then
		${EXEC} -p ${PID_FILE}
		RETVAL=$?
		if [ "${RETVAL}" -eq 0 -a -d /var/lock/subsys ]; then
			touch /var/lock/subsys/${PROG}
		fi
	fi
	return ${RETVAL}
}

stop()
{
	PID="$(get_pid)"
	if [ -n "${PID}" ]; then
		kill ${PID}
		RETVAL=$?
		if [ "${RETVAL}" -eq 0 -a -d /var/lock/subsys ]; then
			rm /var/lock/subsys/${PROG}
		fi
	fi
	return ${RETVAL}
}

status()
{
	PID="$(get_pid)"
	if [ -n "${PID}" ]; then
		echo "${PROG} is running (${PID})"
		return
	fi

	echo "${PROG} is not running"
}

case "$1" in
	start)
		start
		;;

	stop)
		stop
		;;

	restart)
		stop
		start
		;;

	status)
		status
		;;

	reload|force-reload)
		;;

	*)
		echo "Usage: $0 {start|stop|restart|force-reload|status}" >&2
		exit 1
		;;
esac
