#!/bin/sh
#
# netplugd     This shell script takes care of starting and stopping
#              the network plug management daemon.
#
# chkconfig: - 11 89
# description: netplugd is a daemon for managing non-static network \
#              interfaces.
# processname: netplugd
# pidfile: /var/run/netplugd.pid

# Copyright 2003 Key Research, Inc.

# Create needed directories
mkdir -p /var/lock/subsys

# Source function library.
if [ -f /etc/init.d/functions ]; then
	. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
	. /etc/rc.d/init.d/functions
fi

# Source networking configuration.
if [ -f /etc/sysconfig/network ]; then
	. /etc/sysconfig/network

	# Check that networking is up.
	[ ${NETWORKING} = "no" ] && exit 0
elif [ ! -f /etc/network/interfaces ]; then
	# No network support
	exit 0
fi

[ -x /sbin/netplugd ] || exit 0

if [ -f /etc/sysconfig/netplugd ]; then
    . /etc/sysconfig/netplugd
fi

# See how we were called.
case "$1" in
  start)
	# Start daemon.
	printf "Starting network plug daemon: "
	start-stop-daemon -S -q -p /var/run/netplugd.pid -x /sbin/netplugd ${NETPLUGDARGS}
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch /var/lock/subsys/netplugd
	;;
  stop)
	# Stop daemon.
	printf "Shutting down network plug daemon: "
	start-stop-daemon -K -n netplugd
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/netplugd
	;;
  restart|reload)
	$0 stop
	$0 start
	;;
  condrestart)
	[ -f /var/lock/subsys/netplugd ] && $0 restart || :
	;;
  *)
	echo "Usage: $0 {start|stop|restart}"
	RETVAL=1
	;;
esac

exit $RETVAL
