#!/bin/bash
#
# Install Script for the ASE USB III Smart Card Reader.
#
# Version 1.0
# Athena Smartcard Solutions 
#


kermod=AseIIIReader
kermodule=AseIIIReader.o

declare -i minor=224


rel=`uname -r`
min=`uname -r | cut -f2 -d.`

moddir=/lib/modules
initdir=""
rlvdir=""


echo
echo Installing ASE USB III Smart Card Reader...
echo


echo Copying the bundle...


mkdir -p /usr/local/pcsc/drivers 2> /dev/null

if [ $? == 1 ]; then
  echo Could not create the drivers directory. Exiting...
  exit -1
fi

cp -r ./ifd-AseUSB.bundle /usr/local/pcsc/drivers/



mod_min=kernel/drivers/usb
if [ ! -d $moddir/$rel/kernel/drivers/usb ]; then
  mkdir $moddir/$rel/kernel/drivers/usb 2> /dev/null
fi

cp $kermodule $moddir/$rel/$mod_min/

chmod 777 $moddir/$rel/$mod_min/$kermodule

if [ $? == 1 ]; then
  echo Could not copy kernel module. Exiting...
  exit -1
fi


echo Creating the driver nodes...

mkdir /dev/usb 2>/dev/null

declare -i count=0
while [ $count -lt 16 ]
do
  mknod /dev/usb/AseIIIReader$count c 180 $((minor + count)) 2>/dev/null
  chmod 777 /dev/usb/AseIIIReader$count
  count=$((count+1))
done


echo Creating the init scripts...


if [ -f /etc/redhat-release ]; then
  rh=1
  initdir=/etc/init.d
  rlvldir=/etc/rc.d
cat > $initdir/$kermod << eof
#!/bin/sh
# ASE III USB Smart Card Reader Module Loader
#
# (c)2002 Athena Smartcard Solutions
#

. $initdir/functions # RedHat

RETVAL=0
case "\$1" in
  start)
	echo -n Starting $kermod:
	insmod $moddir/\`uname -r\`/$mod_min/$kermodule 2>/dev/null
	RETVAL=\$?
	;;
  stop)
	echo -n Stoping $kermod:
	rmmod $kermod 2>/dev/null
	RETVAL=\$?
	;;
  restart|reload)
	echo Restarting $kermod ....
	\$0 stop && \$0 start
	RETVAL=\$?
	;;
  *)
	echo "Usage: $kermod {start|stop|restart|reload}"
	exit 1
esac
exit $RETVAL
eof

elif [ -f /etc/SuSE-release ]; then
  sus=1
  initdir=/etc/init.d
  rlvldir=/etc/init.d
cat > $initdir/$kermod << eof
#!/bin/sh
# ASE III USB Smart Card Reader Module Loader
#
# (c)2002 Athena Smartcard Solutions
#

. /etc/rc.status # SuSE

rc_reset
case "\$1" in
  start)
	echo -n Starting $kermod
	insmod $moddir/\`uname -r\`/$mod_min/$kermodule 2>/dev/null
	rc_status -v
	;;
  stop)
	echo -n Shutting down $kermod
	rmmod $kermod 2>/dev/null
	rc_status -v
	;;
  restart|reload)
	echo Restarting $kermod ....
	\$0 stop && \$0 start
	rc_status
	;;
  *)
	echo "Usage: $kermod {start|stop|restart|reload}"
	exit 1
esac
rc_exit
eof

else
  initdir=/sbin/init.d
  rlvldir=/sbin/init.d
cat > $initdir/$kermod << eof
#!/bin/sh
# ASE III USB Smart Card Reader Module Loader
#
# (c)2002 Athena Smartcard Solutions
#

case "\$1" in
  start)
	echo -n Starting $kermod...
	insmod $moddir/\`uname -r\`/$mod_min/$kermodule
	;;
  stop)
	echo -n Stoping $kermod...
	rmmod $kermod
	;;
  restart|reload)
	echo Restarting $kermod:
	\$0 stop && \$0 start
	;;
  *)
	echo "Usage: $kermod {start|stop|restart|reload}"
	exit 1
esac
exit
eof

fi

chmod a+x $initdir/$kermod

declare -i i=2
while [ $i -lt 6 ]; do
  ln -sf $initdir/$kermod $rlvldir/rc$i.d/S01$kermod;
  ln -sf $initdir/$kermod $rlvldir/rc$i.d/K21$kermod;
  i=$((i+1))
done


echo Starting the $kermod kernel module...

rmmod $kermod 2>/dev/null
sh $initdir/$kermod start

echo
echo Installation finished.


