#!/bin/sh
set +x
G_MML_FILE_PATH="/opt/huawei/snas/script/inspect_mml"
source $G_MML_FILE_PATH/CheckItems
CurInspectNum="334"
CurInspectFun="$(GetInspectType $CurInspectNum)"
RESULTFILE="/tmp/tmpResult${CurInspectFun}"
LOG_FILE="/var/log/inspect.log"

>${RESULTFILE}
function LOG
{
    time=$(date)
    echo [${time}][$$][$CurInspectFun]$@ >> $LOG_FILE
}
function testDiff()
{
    local staticFile=$1
    local tarFile=$2
    if [ ! -f "${staticFile}" ]; then
        return 1
    fi
    if [ ! -f "${tarFile}" ]; then
        return 1
    fi
    local srcFileSha256=$(sha256sum "${staticFile}" | awk '{print $1}')
    local tarFileSha256=$(sha256sum "${tarFile}" | awk '{print $1}')
    if [ "is${srcFileSha256}" = "is${tarFileSha256}" ]; then
        return 0
    else
        return 1
    fi
}
function CheckAndReplaceStaticCFG
{
    local isPass=0
    local sha256file="/opt/huawei/snas/script/inspect_mml/sha256_value.txt"
    local changeFile=""

    local areaKey=$( cat /opt/inspect/toolkit.app.zh.version )
    if [ ${areaKey} != "true" -o "X${platform}" != "Xaarch64" ];then
        LOG "[$LINENO]is china area:${areaKey},platform:${platform}."
    else
        # ?????,??SSDC????????????,?????????????crash,????????????,???????????/opt/huawei/snas/script/inspect_mml,???????
        allMemConfigIni=$( ls /opt/huawei/snas/script/inspect_mml/snas_node_c1_dram_.*.ini 2>/dev/null )
        for oneMmmCfg in ${allMemConfigIni}
        do
            filename=$( basename ${oneMmmCfg} )
            if [ X"${filename}" == X"" -o ! -f "/opt/huawei/snas/static/${filename}" ]; then
                [ X"${oneMmmCfg}" != X"" ] && rm -f ${oneMmmCfg}
                continue
            fi

            # ???????????????
            testDiff ${oneMmmCfg} /opt/huawei/snas/static/${filename} >/dev/null 2>&1
            if [ $? -eq 0 ]; then
                [ X"${oneMmmCfg}" != X"" ] && rm -f ${oneMmmCfg}
                LOG "[$LINENO]${oneMmmCfg}  is same with  /opt/huawei/snas/static/${filename}."
                continue
            fi

            # /opt/huawei/snas/static/${filename}????????????,????
            cp ${oneMmmCfg} /opt/huawei/snas/static/${filename}
            ret=$?
            LOG "[$LINENO]cp ${oneMmmCfg} /opt/huawei/snas/static/${filename},ret:${ret}"
            rm -f ${oneMmmCfg}
        done
    fi

    all_file="$(ls -lt /opt/huawei/snas/static/*.ini | grep -wv "funcver.ini" | awk -F"/" '{print $NF}' | tr "\n" " " 2>&1)"
    for file in ${all_file};do
        originSha256="$(grep -w $file $sha256file | awk -F ':' '{print $2}')"
        targetSha256="$(sha256sum "/opt/huawei/snas/static/${file}" | awk '{print $1}')"
        if [ -n "$originSha256" ];then
            if [ "${originSha256}" != "${targetSha256}" ];then
                isPass=4
                filename=$( echo "${file}" | awk -F/ '{print $NF}' )
                changeFile="${filename} ${changeFile}"
                LOG "[$LINENO]diff:/opt/huawei/snas/static/${filename}"
            fi
        elif [ -f "/opt/huawei/deploy/package/snas-public/${file}" ];then
            testDiff /opt/huawei/deploy/package/snas-public/${file} /opt/huawei/snas/static/${file}
            if [ $? -ne 0 ]; then
                isPass=4
                changeFile="${file} ${changeFile}"
                LOG "[$LINENO]diff: /opt/huawei/deploy/package/snas-public/${file} /opt/huawei/snas/static/${file}"
            fi
        fi 
    done

    echo "result:${changeFile:-no change}" >>${RESULTFILE} 2>&1
    echo "${CurInspectFun}_Pass ${isPass}" >>${RESULTFILE} 2>&1

    rm -f /opt/huawei/snas/script/inspect_mml/snas_node_c1_dram_*.ini
}
CheckAndReplaceStaticCFG



