#!/bin/sh
#########################
# Internet Connection via PPP
# by M. Andreoli for muLinux
#########################

. /etc/color
 
#set -x

#-------------
# Functions
#-------------


requirements()
{
cat /proc/devices | rgrep ttyS > /dev/null && \
cat /proc/modules | rgrep ppp > /dev/null && \
cat /proc/modules | rgrep slhc > /dev/null
}

configure_ppp()
{
echo "The kernel lack PPP support. Please, configure your PPP"
sleep 1
internet-wizard
}

disconnect()
{
setup isp stop
echo "Disconnected."
exit
}


connect()
{
requirements || configure_ppp
setup isp stop
read -p "Turn on the modem (if any!) and press -RETURN- " dummy

echo "Starting pppd."
pppd

echo -n "Please, wait "

while [ 1 ]
do

case "`setup isp status`" in
up)  done=yes;;
*)	 done=;;
esac

[ "$done" ] && break

echo -n "."
sleep 1
done

echo " connected! "

sleep 1

if [ "`which runq`" ] && [ `which runq` ] ; then

	queue=$(mailq | rgrep Args:)
	if [ "$queue" ] ; then
	echo "Pending emails:"; 
	echo -e "$BRIGHT"
	mailq | rgrep Args:
	echo -e "$NORMAL"

	echo "Processing mail queue ..."
        runq
	fi

elif [ "`/bin/ls /var/spool/mqueue 2>/dev/null`" ] ; then

	if [ "$queue" ] ; then
	read -p "Do You want to process mail queue? (y/N)" pm
	[ "$pm" = y ] && sendmail -q
	fi

fi
}

#---------
# Main
#---------

#trap disconnect 1 2 3


case $0 in
ppp-on|*/ppp-on)
	connect
	;;
ppp-off|*/ppp-off)
	disconnect
	;;
ppp-log|plog|*/ppp-log|*/plog)
	cat /var/log/daemon.log | tail
	;;
*)
	echo "$0: called incorrectly. Use ppp-on, or ppp-off"
esac

# End

