#-----------------------------
# SETUP INTERNAL LIBRARY 
#-----------------------------
# (C) M. Andreoli, for muLinux


#------------------------
# Stop a daemon silenty
#------------------------

stop-single-daemon()
{
name=$1
pid=`pidof $name`

if [ "$pid" ] ; then
        echo -n "`tell Stopping %s| printf -r $name`: $pid"
        kill -1 $pid >/dev/null 2>&1 ; rc1=$?; sleep 2
        kill -9 `pidof $name` >/dev/null 2>&1 ; rc9=$?
        if [ $rc1 -eq 0 ] || [ $rc9 -eq 0 ] ; then
                echo ", `tell done.`"
        else
                echo ", failed (not running?)."
        fi
else
        echo "`tell Stopping %s: not running| printf -r $name`"

fi

}

stop-daemon()
{
name="$@"
pid=
up=

while [ "$1" ] ; do
	stop-single-daemon $1
	shift 1
done

}


#------------------
# prompt
#-------------------
# usage :  prompt var default message
#
prompt()
{
var=$1
default=$2
shift 2

message="$*"

if [ ! -z "${message}" ]
then
        message=`tell "${message}"`
else
        message="`tell Enter` ${var}"
fi

printf "${message} [%s]> " "$default"
read answer

if [ "${answer}" ]
then
        eval export ${var}=\"${answer}\"
else
        eval export ${var}=\"${default}\"
fi
}


device_supported()
{
cat /proc/devices | rgrep "$1" > /dev/null
return $?
}

#-----------------
# network defaults
#------------------

# $1=ip $2=NETMASK

network_default()
{
local ipaddr
local mask 
local def_network
local def_broadcast


ipaddr=`echo $1 | tr . ,`; 
mask=`echo $2 | tr . ,`


def_network=`Array $ipaddr 1`
def_broadcast=`Array $ipaddr 1`

for i in 2 3 4
do
m=`Array $mask $i`
b=`Array $ipaddr $i`
if [ "$m" = 255 ] ; then
	def_network="$def_network.$b"
	def_broadcast="$def_broadcast.$b"
else
	def_network="$def_network.0"
	def_broadcast="$def_broadcast.255"
fi
done

NETWORK="$def_network"
BROADCAST="$def_broadcast"

}

#-------------------------
# check kernel for driver
#-------------------------
# $1=type $2=what

supported()
{
case $1 in
device)
	shift
	cat /proc/devices | rgrep $* >/dev/null
	;;
filesystem)
	shift
	cat /proc/filesystems | rgrep $* > /dev/null
	;;
driver)
	shift
	cat /proc/modules | rgrep $1 > /dev/null
	;;
esac
}

