#!/bin/sh

#############################################################
function remove_pkg() 
{
  echo "Removing package $1..."
  rpm -e --nodeps --quiet $1
}

##############################################################

have_pcsc=0
have_ifdok=0
have_ifdgem=0
have_towi=0
have_opensc=0

function remove_old()
{
  pcsc=`rpm -qa | grep pcsc`  
  if [ ! -z "$pcsc" ]; then 
    if [ "$pcsc" != "pcsc-lite-1.2.0-1" ]; then    
      echo "Previous pcsc-lite found"
      for line in $pcsc; do
       remove_pkg $line
      done
    else
      have_pcsc=1
    fi
  fi

  driver=`rpm -qa | grep ifdokccid`
  if [ ! -z "$driver" ]; then
    if [ "$driver" != "ifdokccid-1.2.0-1" ]; then
      echo "Previous ifdockccid found"
      remove_pkg $driver
    else
      have_ifdok=1
    fi
  fi

  driver=`rpm -qa | grep ifd-gempc`
  if [ ! -z "$driver" ]; then
    if [ "$driver" != "ifd-gempc-0.9.3-1" ]; then
      echo "Previous ifd-gempc found"
      remove_pkg $driver
    else
      have_ifdgem=1
    fi
  fi

  driver=`rpm -qa | grep towitoko`
  if [ ! -z "$driver" ]; then
    if [ "$driver" != "towitoko-2.0.7-1" ]; then
      echo "Previous towitoko found"
      remove_pkg $driver
    else
      have_towi=1
    fi
  fi


  opensc=`rpm -qa | grep opensc`
  if [ ! -z "$opensc" ]; then 
    if [ "$opensc" != "opensc-0.9.4-1" ]; then
      echo "Previous opensc found"
      for line in $opensc; do
        remove_pkg $line
      done 
    else
      have_opensc=1
    fi
  fi
}
#############################################################

function install_pkgs()
{
  if [ $have_ifdok == 0 ]; then
    echo "Installing ifdokccid..."
    rpm -ivh --quiet cl_mk/ifdokccid-1.2.0-1.i386.rpm
  fi
  
  if [ "$have_ifdgem" == 0 ]; then
      echo "Installing ifd-gempc..."
      rpm -ivh --quiet cl_mk/ifd-gempc-0.9.3-1.i386.rpm 
  fi

  if [ "$have_towi" == 0 ]; then
      echo "Installing towitoko..."
      rpm -ivh --quiet cl_mk/towitoko-2.0.7-1.i386.rpm
  fi

  if [ "$have_pcsc" == 0 ]; then
    echo "Installing pcsc-lite..."  
    rpm -ivh --quiet cl_mk/pcsc-lite-1.2.0-1.i386.rpm
  fi

  if [ "$have_opensc" == 0 ]; then
    echo "Installing opensc..."
    rpm -ivh --quiet cl_mk/opensc-0.9.4-1.i386.rpm  
  fi
  
  status=`/etc/init.d/pcscd status | grep pid`
  if [ -z "$status" ]; then
    echo "Initializing pcscd..."
    /etc/init.d/pcscd start
  fi
  
  echo "Packages are installed"
}
###############################################################

echo "Installing and configuring packages. It may take some time..."

remove_old
install_pkgs
