#!/bin/bash
red='\e[0;31m'
green='\e[0;32m'
yellow='\e[0;33m'
NC='\e[0m' # No Color

base="00:50:c2:67:"
let max=0x3fff
let minSerial=300

let advanced=0
if [ "${1}" == "advanced" ]; then
    let advanced=1
fi

isnews2m=$(lspci -n | grep -c "1011:f001")
ismgb=$(lspci -n | grep -c "1011:f002")
isQuadE1=$(lspci -n | grep -c "1011:f004")
isAtomBox=$(lspci -n | grep -c "1011:f005")

modprobe cfgspc
patch-macaddr /usr/bin/mgb.img 2>&1 >/dev/null

if [ ${advanced} -ge 1 ] ; then
    if [ "x${2}" = "x" ] ;then 
        read -p "Please give last four digits of Mac-Address ${base}" macpart
    else
        #echo -e "${2}"
        base=${2:0:12}
        #echo -e "${base}"
        macpart=${2:12}
        #echo -e "${macpart}"
    fi
else
    serial=$(i2crdserial ${CONFIGBUS})
    #echo "serial=$serial"
    let part=$((0x3c41+${serial}-300)); 
    #printf "part=%04x\n" $part
    macpart=$( printf "%02x:%02x" $((${part}>>8)) $((${part}&0xff)) )
    if [ $serial -lt $minSerial ] ;then
        echo -en "${red}"
        echo -e "*************************************************************"
        echo -e "**** Serial number is less then 300"
        echo -e "*************************************************************"
        echo -en "${NC}"
        exit -2
    elif [ $part -le $max ] ;then
        echo -en "${green}"
        echo -e "*************************************************************"
        echo -e "**** Mac-Address is ${base}${macpart}"
        echo -e "*************************************************************"
        echo -en "${NC}"
    else
        echo -en "${red}"
        echo -e "*************************************************************"
        echo -e "**** no Mac-Address in pool left"
        echo -e "*************************************************************"
        echo -en "${NC}"
        exit -1
    fi
fi

if echo $macpart | grep "^[0-9A-Fa-f][0-9A-Fa-f]:[0-9A-Fa-f][0-9A-Fa-f]$" ; then
	patch-macaddr /usr/bin/mgb.img ${base}${macpart} | grep -v "Alte MAC"
	cat /usr/bin/mgb.img | rtl_eeprom w
	sleep 1
	rtl_eeprom r >/tmp/rtl.img
	if diff /tmp/rtl.img /usr/bin/mgb.img; then
    		echo -en "${green}"
                echo -e "*************************************************************"
		echo -e "********* Mac-Adresse successfuly written"
                echo -e "*************************************************************"
                echo -en "${NC}"
	else
		echo -en "${yellow}"
                echo -e "*************************************************************"
    		echo -e "******** Please restart to activate new Mac-Address"
                echo -e "*************************************************************"
                echo -en "${NC}"
	fi
else
                echo -en "${red}"
                echo -e "*************************************************************"
                echo -e "*************** Mac-Adresse not correct"
                echo -e "**** Mac-Address is ${base}${macpart}"
                echo -e "*************************************************************"
                echo -en "${NC}"
fi

#omgclearnetworksettings
