#!/bin/bash

#DETERMINE IF OS IS RHEL OR DEBIAN BASED AND CHECK FOR NEEDED UTILITIES. WILL EXIT IF NOT RHEL OR DEBIAN BASED!

if [ -x "$(command -v yum)" ]; then 
	echo "=====================RHEL BASED OS DETECTED -- PROCEEDING=====================" 
		echo "=====================CHCECKING FOR REQUIRED UTILITIES====================="
			if [ -x "$(command -v xxd)" ]; then
				echo "=====================XXD ALREADY INSTALLED====================="
			else
				echo echo "=====================XXD NOT FOUND INSTALLING NOW====================="
				yum -q install vim-common -y > /dev/null;
			fi
			if [ -x "$(command -v unzip)" ]; then
				echo "=====================UNZIP ALREADY INSTALLED====================="
			else
			    echo echo "=====================UNZIP NOT FOUND INSTALLING NOW====================="
				yum -q install unzip -y 
				echo "=====================UNZIP NOW INSTALLED====================="
			fi	
elif [ -x "$(command -v apt-get)" ]; then
	echo "=====================DEBIAN BASED OS DETECTED=====================" 
		echo "=====================CHCECKING FOR REQUIRED UTILITIES====================="
			if [ -x "$(command -v xxd)" ]; then
				echo "=====================XXD ALREADY INSTALLED====================="
			else
				echo "=====================XXD NOT FOUND INSTALLING NOW======================"
				DEBIAN_FRONTEND=noninteractive apt-get install -qq xxd < /dev/null > /dev/null;
				echo "=====================XXD NOW INSTALLED====================="
			fi
			if [ -x "$(command -v unzip)" ]; then
				echo "=====================UNZIP ALREADY INSTALLED====================="
			else
				echo "=====================UNZIP NOT FOUND INSTALLING NOW====================="
				DEBIAN_FRONTEND=noninteractive apt-get install -qq unzip < /dev/null > /dev/null;
				echo "=====================UNZIP NOW INSTALLED====================="
			fi	
else 
	echo "=====================SCRIPT ONLY MADE FOR DEBIAN/RHEL BASED SYSTEMS=====================";
	echo "=====================OOB ACTIVATION UN=====================";
	echo "=====================EXITING====================="
	exit 1
fi

#CREATE DIRECTORY FOR FILES

cd /root

#INSTALL IPMICFG IF MISSING

echo "=====================CHECKING FOR IPMICFG=====================";
if [ -x "$(command -v ipmicfg)" ]; then
	echo "=====================IPMICFG ALREADY INSTALLED ON THIS SYTEM====================="
else	
    echo "=====================IPMICFG NOT FOUND INSTALLING NOW====================="
	wget -qc 216.104.40.250/tools/ipmi/IPMICFG_1.30.0_build.190710.zip 
	unzip IPMICFG_1.30.0_build.190710.zip > /dev/null
	cp /tmp/bios/IPMICFG_1.30.0_build.190710/Linux/64bit/IPMICFG-Linux.x86_64 /usr/bin/ipmicfg 
	chmod +x /usr/bin/ipmicfg;
	echo "=====================IPMICFG NOW INSTALLED====================="
fi 

#ACTIVATE BIOS KEY

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/.$//'`
echo "=====================INSTALLING SUM====================="
cd /root
wget -qc http://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




#UNSET VARIABLES

unset MAC KEY


echo "=====================OOB ACTIVED FOR BIOS UPDATING VIA SUM/IPMI====================="

exit
rm -- "$0"
