#! /bin/sh
#
# wifiroamd	Control the wifiroamd wireless connection manager
#
# chkconfig: - 11 91
# description: wifiroamd wireless manager
# processname: wifiroamd
# config: /etc/wifiroamd/scripts
# pidfile: /var/run/wifiroamd.pid

# Source function library.
if [ -f /etc/rc.d/init.d/functions ]
then
	. /etc/rc.d/init.d/functions
	MODE=fedora
elif [ -f /etc/rc.status ]
then
	. /etc/rc.status
	MODE=suse
fi

RETVAL=0
PROCNAME=wifiroamd
#  NOTE: FLAGS should be set in /etc/sysconfig/wifiroamd
#  Any value set here will be overridden by /etc/sysconfig/wifiroamd
FLAGS=
if [ -f /etc/sysconfig/wifiroamd ]
then
	. /etc/sysconfig/wifiroamd
fi

# See how we were called.
case "$1" in
  start)
   rm -f /etc/wifiroamd/disabled || true
	echo -n "Starting wifiroamd: "
	/sbin/wifiroamd $FLAGS &
	sleep 1
	pkill -0 -f 'python \S+'$PROCNAME
	RETVAL=$?
	if [ $RETVAL -eq 0 ]
	then
		[ "$MODE" == fedora ] && echo_success
		if [ "$MODE" == suse ]; then bash -c "exit $RETVAL"; rc_status -v; fi
		touch /var/lock/subsys/wifiroamd
	else
		[ "$MODE" == fedora ] && echo_failure
		if [ "$MODE" == suse ]; then bash -c "exit $RETVAL"; rc_status -v; fi
	fi
	echo
	;;
  stop)
	echo -n "Stopping wifiroamd: "
	[ -s "/var/run/wifiroamd.pid" ] && kill "`cat /var/run/wifiroamd.pid`"
	RETVAL=$?
	if [ $RETVAL -eq 0 ]
	then
		[ "$MODE" == fedora ] && echo_success
		if [ "$MODE" == suse ]; then bash -c "exit $RETVAL"; rc_status -v; fi
		rm -f /var/lock/subsys/wifiroamd
	else
		[ "$MODE" == fedora ] && echo_failure
		if [ "$MODE" == suse ]; then bash -c "exit $RETVAL"; rc_status -v; fi
	fi
	sleep 1
	echo
	;;
  status)
	if [ -s "/var/run/wifiroamd.pid" ] ; then
	    pid=`pgrep -f 'python \S+'"$PROCNAME"`
	    if test ! -z "$pid" -a -d /proc/$pid  ; then
		echo "wifiroamd (pid $pid) is running"
		RETVAL=0
	    else
		echo "wifiroamd dead but pid file exists"
		RETVAL=1
	    fi
	else
	    echo "wifiroamd is stopped"
	    RETVAL=0
	fi
	;;
  restart|reload)
  	$0 stop
	$0 start
	RETVAL=$?
	;;
  *)
	echo "Usage: wifiroamd {start|stop|status|restart}"
	exit 1
esac

exit $RETVAL
