#! /bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATH
LOG="/var/log/eveusb-install.log"
VERSION=1.0.0
ARGS="-m eveusb -v $VERSION"
MODPROBE=/sbin/modprobe

#if $MODPROBE -c | grep -q '^allow_unsupported_modules  *0'; then
#  MODPROBE="$MODPROBE --allow-unsupported-modules"
#fi

begin_msg()
{
	echo $1
}
succ_msg()
{
echo "...done"
}

failure()
{
    echo "$1"
    exit 0
}

running()
{
    lsmod | grep -q "$1[^_-]"
}

start()
{
    begin_msg "Starting Eveusb kernel modules"
    if ! $MODPROBE eveusb > /dev/null 2>&1; then
        failure "modprobe eveusb failed. Please use 'dmesg' to find out why"
    fi
    succ_msg
}

stop()
{
    begin_msg "Stopping Eveusb kernel modules"
    if running eveusb; then
        if ! rmmod eveusb 2>/dev/null; then
            failure "Cannot unload module vboxpci"
        fi
    fi
    succ_msg
}

# setup_script
setup()
{
    stop
    DKMS=`which dkms 2>/dev/null`
    if [ -n "$DKMS" ]; then
      begin_msg "Uninstalling old Eveusb DKMS kernel modules"
      $DKMS uninstall $ARGS >  $LOG
      succ_msg
    fi
    if [ -n "$DKMS" ]; then
      begin_msg "Remove old Eveusb DKMS kernel modules"
      $DKMS remove eveusb/1.0.0 --all >>  $LOG
      succ_msg
    fi
    if [ -n "$DKMS" ]; then
      begin_msg "Recompiling Eveusb kernel modules"
      if ! $DKMS build $ARGS >> $LOG 2>&1; then
          failure "Look at $LOG to find out what went wrong"
      fi
    fi

    if [  -n "$DKMS" ]; then
      begin_msg "Trying to register the Eveusb kernel modules using DKMS"
      if ! $DKMS install $ARGS >> $LOG; then
        fail_msg "Failed, trying without DKMS"
        DKMS=""
      fi
    fi
    succ_msg
}

check()
{
if ! dkms status eveusb|grep eveusb &> /dev/null; then
	setup
fi
    start
}

check

