#! /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
elif [ -f /etc/gentoo-release ]
then
   MODE=gentoo
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
      [ "$MODE" == gentoo ] && echo OK
      touch /var/lock/subsys/wifiroamd
   else
      [ "$MODE" == fedora ] && echo_failure
      if [ "$MODE" == suse ]; then bash -c "exit $RETVAL"; rc_status -v; fi
      [ "$MODE" == gentoo ] && echo FAIL
   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
      [ "$MODE" == gentoo ] && echo OK
      rm -f /var/lock/subsys/wifiroamd
   else
      [ "$MODE" == fedora ] && echo_failure
      if [ "$MODE" == suse ]; then bash -c "exit $RETVAL"; rc_status -v; fi
      [ "$MODE" == gentoo ] && echo FAIL
   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
