#!/bin/sh
mark="MARK_RACK_SN"
gw_sn=`/lib/dyiot/bin/factory get | grep SN | awk -F = '{print $2}' | tr '\\n' '\\0'`
echo "******************* Gateway SN $gw_sn ****************************"
sed s/$mark/$gw_sn/g -i /app/node/nodes_cfg.json

echo "******************* Copy files  ****************************"

node_file_bak="/tmp/node/nodes_cfg.json"
script_file_bak="/tmp/script/script_130325496.lua"
script_file_new="/app/script/script_130325496.lua"
script_file_tmp="/tmp/script_130325496.lua"
if [ -f $node_file_bak ]
then
    meter_addr=`/app/get_meter_address.sh`
    if [ ! -z $meter_addr ]
    then
        /app/update_meter_address.sh $meter_addr
        echo "******************* Meter_addr has been modifyed as $meter_addr ****************************"
    fi
fi

if [ -f $script_file_bak ]
then
    date=`date +%s`
    # 备份原始文件
    cp $script_file_bak /app/script/script_130325496_$date.lua #永远会备份上次修改

    l_pattern=52
    l_pattern_befor=51

    pattern='-------DoNotRemoveTheLine-------'
    line=`grep -h -n -e $pattern $script_file_bak | cut -d \: -f 1 `  #旧文件备份文件 行号
    # echo "[$line]"
    if [ ! -z $line ] ; then
        l_pattern=`grep -h -n -e $pattern $script_file_bak | cut -d \: -f 1 ` #旧文件备份文件 行号
        l_pattern_befor=`expr "$l_pattern" - 1`                                 #旧文行号 -1
        l_new_pattern=`grep -h -n -e $pattern $script_file_new | cut -d \: -f 1 `  # 新文件行号
        if [ $l_new_pattern -lt $l_pattern ]
        then
            echo 'Not Support The Condition New file is Short than Old file'
            return 1
        fi
    fi

    # 旧文件头写入/tmp
    head -n $l_pattern_befor $script_file_bak > $script_file_tmp
    # 新文件尾写入/tmp
    tail -n +$l_pattern $script_file_new >> $script_file_tmp

    # 替换新文件
    cp $script_file_tmp $script_file_new

    rm $script_file_tmp

    echo "******************* Script has been modifyed  ****************************"
fi

echo "******************* Submodule will be reset  ****************************"
/etc/init.d/protocol_parser restart

echo "******************* System deploy finished  ****************************"
rm $0
