#!/bin/sh

#bin_md5=
#board_name=
tmp_file=".tmp.tar.bz2"
tmp_dir=".ems_tmp"
split_script_and_tar() {
    target="##########BINARY-DATA-BEGIN##########" # 必须和这个脚本最后一行匹配
    file=$1
    tar_file=$2
    line_num=1
    ok=0
    while IFS= read -r line; do
        line_num=$((line_num + 1))
        if [ "$line" = "$target" ]; then
            ok=1
            break
        fi
    done <"$file"

    if [ $ok -eq 0 ]; then
        return 1
    else
        tail -n +$line_num $file >$tar_file
        return $?
    fi
}

dump_data() {
    split_script_and_tar $1 $tmp_file
    #./a.out "$1" "$tmp_file"
    return $?
}

install_file() {
    cp $1/subemsd_startup.sh /opt/lnxall_app/bin/subemsd_startup.sh -rfv
    cp $1/subemsd.service /lib/systemd/system/subemsd.service -rfv
    cp $1/config /opt/lnxall_app/app/ -rnv
}

intsall() {
    cur_md5=$(md5sum -b "$tmp_file" | awk '{print $1}')

    if [ "$cur_md5" != "$bin_md5" ]; then
        echo "md5 check failed,target md5:$bin_md5, calculate md5:$cur_md5"
        return 2
    else
        echo "md5 check succeeded"
    fi
    echo "install"
    echo "extract package"
    mkdir -p $tmp_dir
    tar -xjvf "$tmp_file" -C $tmp_dir >>/dev/null
    rm $tmp_file
    ##
    install_file $tmp_dir/ems_smu
    ##
    rm $tmp_dir -rf
    return $?
}

main() {
    #PRODUCT=$(factory get | grep -i ^PRODUCT | awk -F = '{print $2}' | tr '\n' '\0')
    #BOARD_NAME=$(cat /tmp/sysinfo/board_name)
    BOARD_NAME_TAIL=$(cat /tmp/sysinfo/board_name | awk -F "_" '{print $2}')
    if [ "$BOARD_NAME_TAIL" = "$board_name" ]; then
    #if [ "$BOARD_NAME" = "$board_name" ]; then
        echo "check board_name ok"
    else
        echo "board_name mismatch, current board_name:$BOARD_NAME_TAIL,target board_name:$board_name"
        return 1
    fi

    dump_data "$0"
    if [ $? -eq 0 ]; then
        echo "dump data succeeded"
    else
        echo "dump data failed"
        exit 1
    fi
    echo "stop subemsd service"
    systemctl stop subemsd.service #需要先停止掉，以保证安装的时候文件能够正常替换
    intsall
    if [ $? -eq 0 ]; then
        echo "intsall succeeded"
    else
        echo "intsall failed"
    fi
    echo "stop start service"
    systemctl daemon-reload
    systemctl start subemsd.service
    exit 0
}
main
# 下面这行是脚本和tar包的分节符
##########BINARY-DATA-BEGIN##########
