#!/bin/sh
# Copyright (c) 2009 Synaptics Incorporated. All rights reserved.

# chkconfig: 35 50 10
# description: Synaptics DBus Session Daemon
#
### BEGIN INIT INFO
# Provides:       synaptics-dbus
# Required-Start:
# Required-Stop:
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 6
# Description:    Synaptics DBus Session Daemon
### END INIT INFO

PATH=$PATH:/bin:/sbin:/usr/sbin
SYN_DBUS_CONFIG="/opt/Synaptics/etc/synaptics-dbus.conf"
PID_FILE="/var/run/synapticsbus.pid"

#Temporary fix for Lenovo ARM startup problem 
if [ -f /etc/millos-release ]; then
  rm -f $PID_FILE
fi

if [ -f /etc/redhat-release ] || [ -f /etc/linpus-release ]; then
    system=redhat
elif [ -f /etc/SuSE-release ]; then
    system=suse
elif [ -f /lib/lsb/init-functions ]; then
    system=debian
else
    system=other
fi

if [ "$system" = "redhat" ]; then
    . /etc/init.d/functions
    fail_msg() {
        echo_failure
	echo
    }
    succ_msg() {
        echo_success
	echo
    }
    begin() {
        echo -n "$1"
    }
fi

if [ "$system" = "suse" ]; then
    . /etc/rc.status
    fail_msg() {
        rc_failed 1
	rc_status -v
    }
    succ_msg() {
      rc_reset
      rc_status -v
    }
    begin() {
        echo -n "$1"
    }
fi

if [ "$system" = "debian" ]; then
    . /lib/lsb/init-functions
    fail_msg() {
        log_failure_msg "$1"
    }
    succ_msg() {
        log_success_msg "$1"
    }
    begin() {
        log_begin_msg "$1"
    }
fi

if [ "$system" = "other" ]; then
    fail_msg() {
        echo " ....fail!"
    }
    succ_msg() {
        echo " ...done."
    }
    begin() {
        echo -n "$1"
    }
fi

start()
{
    begin "Starting Synaptics DBus Daemon";
    if [ -f $PID_FILE ]; then
        RETVAL=1
    else
        dbus-daemon --config-file=$SYN_DBUS_CONFIG
        RETVAL=$?
    fi
    if [ $RETVAL -eq 0 ]; then
        succ_msg
    else
        fail_msg
    fi
    return $RETVAL
}

stop()
{
    begin "Stopping Synaptics DBus Daemon";
    if [ -f $PID_FILE ]; then
        kill `cat $PID_FILE`
        RETVAL=$?
    else
        RETVAL=1
    fi
    if [ $RETVAL -eq 0 ]; then
        succ_msg
    else
        fail_msg
    fi
    return $RETVAL
}

restart()
{
    stop && start
    return 0
}

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

exit
