#!/bin/bash
#VARIABLES
IPMI_VER=$(ipmicfg -ver | cut -d: -f2- | sed 's/^ *//' | sed 's/ //g')
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/.$//'`
EXPECTEDBOARD=X12DDW-A6
DIRECTORY=x12ddw-a6

#UPDATE THESE WHEN UPDATING FW FILE
LATEST_VER=01.08.02
IPMI_FILE=x12ddw-a6_01.08.02.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=====================" -- Currently not supported for this mobo.
#./sum -c ActivateProductKey --key $KEY > /dev/null

#APPLY UPDATE
cd /root/sum_2.9.0_Linux_x86_64
if [ $MOTHERBOARD != "$EXPECTEDBOARD" ]; then
echo "MOTHERBOARD IS NOT $EXPECTEDBOARD!"
echo "$MOTHERBOARD DETECTED!"
echo "EXITING SCRIPT!"
rm -f "/root/$(basename "$0")"
exit 0
else
echo "$MOTHERBOARD DETECTED -- PROCEEDING!"
fi
echo "CHECKING IPMI VERSION" &&
if [[ $IPMI_VER = $LATEST_VER ]]
then
echo "IPMI IS AT LATEST VERSION - Version: $IPMI_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 "EXITING SCRIPT!"
rm -f "/root/$(basename "$0")"
exit 0
else
echo "IPMI IS CURRENTLY ON $IPMI_VER -- UPDATE NEEDED. RUNNING THE UPDATE NOW!"
ifconfig usb0 up &&
ip a add 169.254.3.1/255.255.255.0 dev usb0 &&
wget 216.104.40.250/tools/ipmi/$DIRECTORY/$IPMI_FILE &&
./sum -I Redfish_HI -u ADMIN -p ADMIN -c UpdateBmc --file $IPMI_FILE &&
echo "UPDATE COMPLETE!"
rm -f "/root/$(basename "$0")"
exit 0
fi

