#! /bin/bash

# Author: Alok Kumar <alok@cumulusnetworks.com>

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/cumulus/bin

is_spectrum1_platform() {
    # Query the Device Type using mlxfwmanager and grep
    device_info=$(mlxfwmanager | grep "Device Type")
    device_type=$(echo "$device_info" | awk -F': ' '{print $2}' | xargs)

    # Check if the output contains "Spectrum"
    if [[ $device_type == "Spectrum" ]]; then
        return 0
    else
        return 1
    fi
}

case "$1" in
  start)
        plat=`/usr/bin/platform-detect`
        if [[  ${plat} =~ "simx" ]]; then
            logger -s -p syslog.alert -- "simx: skip loading of SPICE driver for spectrum1 platform"
        elif [[  ${plat} =~ "cumulus,vx" ]]; then
            logger -s -p syslog.alert -- "cumulus,vx: skip loading of SPICE driver for spectrum1 platform"
        else
            if is_spectrum1_platform; then
                logger -s -p syslog.alert -- "Spectrum1: skip loading of SPICE driver for spectrum1 platform"
            else
                logger -s -p syslog.alert -- "Loading SPICE driver"
                /sbin/modprobe sx_spice_dump
            fi
        fi
	;;
  stop)
       if not is_spectrum1_platform; then
           /sbin/rmmod sx_spice_dump
       fi
    ;;
  *)
	;;
esac

exit 0 # no errors if ls finds nothing for start or stop, or if scripts fail.

