#!/bin/sh

#bin_md5=
#board_name=
tmp_file=".tmp.tar.bz2"
tmp_dir=".ptc_tmp_dir"
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 $?
}

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 "extract package"
    if [ -d "$tmp_dir" ]; then
        echo "$tmp_dir already exists"
        exit -1
    fi

    mkdir $tmp_dir
    tar -xjvf "$tmp_file" -C $tmp_dir >>/dev/null
    cp -rvf $tmp_dir/* /
    rm $tmp_file
    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)
    if [ "$BOARD_NAME" = "$board_name" ]; then
    #if [ "$BOARD_NAME" = "$board_name" ]; then
        echo "check board_name ok"
    else
        echo "board_name mismatch, current board_name:$BOARD_NAME,target board_name:$board_name"
        # return 1
    fi

    dump_data "$0"
    if [ $? -eq 0 ]; then
        echo "dump data succeeded"
    else
        echo "dump data failed"
        return 2
    fi

    intsall
    if [ $? -eq 0 ]; then
        echo "intsall succeeded"
    else
        echo "intsall failed"
    fi
    #
    systemctl daemon-reload >> /dev/null 2>&1
    #
    systemctl enable patch_check_ssd.service >> /dev/null 2>&1
    systemctl start patch_check_ssd.service >> /dev/null 2>&1
    return 0
}

main
if [ $? -eq 0 ]; then
    rm -- "$0"
    exit 0
else
    exit 123
fi
# 下面这行是脚本和tar包的分节符
##########BINARY-DATA-BEGIN##########
