#! /bin/sh

# Skript zur Installation von CAPI4Linux (binr)
# (2.4.4-4GB)

. /etc/rc.config
. ./install.card

# INIT: Allgemeine Definitionen
DOC=/usr/share/doc
OLDBIN=/sbin
BIN=/usr/sbin
USBMGR=/etc/usbmgr
KERNEL=2.4.4-4GB

# TEST: Bin ich root?
user=`id -u`
if [ "$user" != "0" ]; then
	echo -e "./install must be started by \"root\"."
	exit 1
fi

# TEST: Kernel-Version
kern=`uname -r`
cardname=`head -n 1 install.card | cut -b 3-`
if [ "$kern" != "$KERNEL" ]; then
	echo "Invalid kernel version... found $kern, expected: $KERNEL."
	exit 2
fi

# INIT: Find archives...
LIBVER=`ls c4l-lib-* | cut -b9-18`
SYSVER=`ls c4l-sys-* | cut -b9-18`

# TEST: Existiert pppd?
which pppd > /dev/null
if [ 0 != $? ]; then
	echo "pppd has not been installed!"
	exit 3
fi

# TEST: Existiert /dev/capi?
if ! test -d /dev/capi; then
	mkdir /dev/capi
fi

# TEST: i4l vorhanden & aktiv?
if [ "$I4L_START" == "yes" ]; then
        if ! test -f /etc/init.d/i4l_hardware.old; then
        	mv -vf /etc/init.d/i4l_hardware /etc/init.d/i4l_hardware.old
	fi
        cp -vf i4l_hardware /etc/init.d
        chmod 744 /etc/init.d/i4l_hardware
	i4l=1
else
        if ! test -f /etc/init.d/c4l_start; then
                cp -vf c4l_start /etc/init.d
                chmod 744 /etc/init.d/c4l_start
                ln -s /etc/init.d/c4l_start /etc/init.d/rc2.d/S03c4l
                ln -s /etc/init.d/c4l_start /etc/init.d/rc3.d/S03c4l
                ln -s /etc/init.d/c4l_start /etc/init.d/rc5.d/S03c4l
                ln -s /etc/init.d/c4l_start /etc/init.d/rc2.d/K44c4l
                ln -s /etc/init.d/c4l_start /etc/init.d/rc3.d/K44c4l
                ln -s /etc/init.d/c4l_start /etc/init.d/rc5.d/K44c4l
        fi
	i4l=0
fi

# TEST: Konflikt mit USB-Installation?
if test -d $USBMGR/vendor/057c; then
        (cd $USBMGR/vendor; rm -r 057c)
fi

# TEST: Existiert /usr/share/doc/CAPI4Linux/...?
if ! test -d $DOC; then
	mkdir $DOC
fi
if ! test -d $DOC/CAPI4Linux; then
	mkdir $DOC/CAPI4Linux
	mkdir $DOC/CAPI4Linux/de
	mkdir $DOC/CAPI4Linux/en
fi

# TEST: Kopien der CAPI-Tools in /sbin?
# if test -f $OLDBIN/capiinit; then
# 	echo -e "\a\nPrograms 'capiinit' and 'avmcapictrl' have been moved!"
# 	echo -e "Please enter 'rehash' (or 'hash -r', respectively) after"
# 	echo -e "the installation.\n"
# 	rm -f $OLDBIN/capiinit
# 	rm -f $OLDBIN/avmcapictrl
# fi

# INIT: Kopieren, endlich! ;-)
echo Copying CAPI drivers...
rpm --upgrade --force c4l-sys-$SYSVER-1.i386.rpm 2>  install.log
echo Copying CAPI tools...
rpm --upgrade --force c4l-lib-$LIBVER-1.i386.rpm 2>> install.log
echo Copying driver modules for $cardname...
cp -vf fcpcmcia.o         /lib/modules/$KERNEL/misc
cp -vf fcpcmcia_cs.o      /lib/modules/$KERNEL/misc
cp -vf pcmcia.conf        /etc/capi.conf
cp -vf avm                /etc/pcmcia
cp -vf avm.opts           /etc/pcmcia
cp -vf install_passive-d.html $DOC/CAPI4Linux/de/install_passive.html
cp -vf install_passive-e.html $DOC/CAPI4Linux/en/install_passive.html

if ! test -f /etc/pcmcia/avm.conf.old; then
	mv -vf /etc/pcmcia/avm.conf /etc/pcmcia/avm.conf.old
fi
cp -vf avm.conf           /etc/pcmcia

depmod -q -a 2>> install.log

# INIT: Problem mit man in SuSE 7.2?!?
man -k CAPI > /dev/null

# Aufruf der karten-spezifischen finalize-Methode...
finalize
 
case $i4l in

        1)      
		echo -e "\a\nCheck whether ISDN4Linux is set to AVM B1;"
		echo -e "if not, do so now and reboot the system...\n"
		;;
	0)	
		echo -e "\n\aPlease reboot (required by the PCMCIA CardServices)\n"
		;;
	*)	
		echo "Oops!"
		;;
esac

