#!/bin/bash
iname=ftcard
shlib=libftcard.so
rel=`uname -r`
min=`uname -r | cut -f2 -d.`
moddir=/lib/modules

echo
echo Installing USB Smartcard reader...
echo

echo "ps ax|awk '{print \$5}'|grep pcscd">/usr/local/bin/ftcard.sh
echo "if [ \$? != 0 ]; then">>/usr/local/bin/ftcard.sh
echo "rm -f /var/run/pcscd*">>/usr/local/bin/ftcard.sh
echo "/usr/local/sbin/pcscd">>/usr/local/bin/ftcard.sh
echo "fi">>/usr/local/bin/ftcard.sh
echo "/sbin/modprobe -s ftcard">>/usr/local/bin/ftcard.sh
chmod +x /usr/local/bin/ftcard.sh

cp ./Driver/ifdapi/$shlib /usr/local/lib

grep -q $shlib /etc/reader.conf 2> /dev/null
if [ $? != 0 ]; then
  cp /etc/reader.conf /etc/reader.conf.bak 2> /dev/null
  cat >> /etc/reader.conf << eof

FRIENDLYNAME		"FT CARD"
DEVICENAME		USBTOKEN
LIBPATH			/usr/local/lib/$shlib
CHANNELID		0x10000001

eof
fi

grep -q "/usr/local/lib" /etc/ld.so.conf 2> /dev/null
if [ $? != 0 ]; then
  cp /etc/ld.so.conf /etc/ld.so.conf.bak 2> /dev/null
  echo "/usr/local/lib" >> /etc/ld.so.conf
fi

grep -q ftcard.sh /etc/inittab 2> /dev/null
if [ $? != 0 ]; then
	cp /etc/inittab /etc/inittab.bak
	echo "ft:2345:wait:/usr/local/bin/ftcard.sh">>/etc/inittab
fi

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

if [ $min == 6 ]; then
cp ./Driver/ftcard/ftcard.ko $moddir/$rel/$mod_min/
chmod 644 $moddir/$rel/$mod_min/ftcard.ko
else
cp ./Driver/ftcard/ftcard.o $moddir/$rel/$mod_min/
chmod 644 $moddir/$rel/$mod_min/ftcard.o
fi

if [ $? == 1 ]; then
  echo Could not copy driver-module, exiting
  exit -1
fi

#
# create reader devices
#
mkdir /dev/usb 2>/dev/null

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

/sbin/ldconfig
/sbin/depmod -a
echo Installation finished
