#!/bin/bash
rm -rf /tmp/x10dri_bios.sh

#UPDATE THESE WHEN UPDATING FW
LATEST_VER=3.4a
BIOS_FILE=x10dri_3.4a.bin

#REST OF VARIABLES
BIOS_VER=$(dmidecode -t 0 |grep Version | cut -d " " -f 2)
MOTHERBOARD=$(dmidecode -t 2 |grep 'Product Name' |cut -d " " -f 3)
MAC=`ipmicfg -m | grep -i MAC | cut -d'=' -f2 | sed 's/://g'`
KEY=`eval echo $MAC | xxd -r -p | openssl dgst -sha1 -mac HMAC -macopt hexkey:8544E3B47ECA58F9583043F8 | awk '{print $2}' | cut -c 1-24 | sed 's/.\{4\}/&-/g' | sed 's/.$//'`
DIRECTORY=x10dri
EXPECTED_BOARD_1=X10DRI-T
EXPECTED_BOARD_2=X10DRi
DEFAULT_SETTINGS=x10dri_default_settings.bin




#ACTIVATE BIOS KEY


echo "=====================INSTALLING SUM====================="
cd /root
wget -qc 216.104.40.250//tools/bios/sum_2.9.0_Linux_x86_64.zip
unzip sum_2.9.0_Linux_x86_64.zip > /dev/null
cd sum_2.9.0_Linux_x86_64
chmod +x sum
echo "=====================SUM INSTALLED====================="
echo "=====================ACTIVATING NOW====================="
./sum -c ActivateProductKey --key $KEY > /dev/null

#APPLY UPDATE
if [[ "$MOTHERBOARD" == "$EXPECTED_BOARD_1" || "$MOTHERBOARD" == "$EXPECTED_BOARD_2" ]]; then
echo "$MOTHERBOARD DETECTED -- PROCEEDING!!"
else
rm -f "/root/$(basename "$0")"
exit 0
fi
echo "CHECKING BIOS VERSION" &&
if [[ $BIOS_VER = $LATEST_VER ]]
then
echo "BIOS IS AT LATEST VERSION - Version: $BIOS_VER"
echo "This board is currently at the latest version of this script. If a newer version is available, script will need to be updated."
echo "APPLYING DEFAULT BIOS SETTINGS!"
wget -q 216.104.40.250/tools/bios/$DIRECTORY/$DEFAULT_SETTINGS &&
./sum -c ChangeBiosCfg --file $DEFAULT_SETTINGS &&
rm -f "/root/$(basename "$0")"
exit 0
else
echo "BIOS IS CURRENTLY ON $BIOS_VER -- UPDATE NEEDED. RUNNING THE UPDATE NOW!"
wget -q 216.104.40.250/tools/bios/$DIRECTORY/$BIOS_FILE &&
./sum -c UpdateBios --file $BIOS_FILE
	FDT=$?
	if [[ $FDT == 254 ]]; then
	echo "BIOS UPDATE IS NOT COMPLETE. REBOOT SERVER TO FORCE ME MANUFACTURING MODE AND THEN RE-RUN SCRIPT!"
	exit 0
	else
	echo "ATTENTION! UPDATE COMPLETE! REBOOT SERVER AND RUN SCRIPT AGAIN TO APPPLY DEFAULT BIOS SETTINGS!"
	fi
rm -f "/root/$(basename "$0")"
exit 0
fi
