#!/bin/bash

#补丁脚本关键说明（参考EulerOS V100R003C00 用户文档，制作用户态文件的补丁）：
#如果该补丁是有需要替换的补丁文件，则请将该脚本命名中包含userpatch_script字段。
#如果该补丁是script_only型不需要替换文件的补丁，请将该脚本命名为不带userpatch_script的字段。
#对于script_only型补丁，由于不需要替换文件，补丁预处理脚本在补丁加载只会执行start操作，在补丁回滚时只会执行rollstart操作。

source /OSM/script/os_load_base.sh
FW_PATH=/OSM/coffer_data/patch_bdm_2018021302001

function do_diagnose()
{
    echo -e "$1\nexit\n" | diagnose --auto | grep -v diagnose
}

function BDM_PATCH_UNREGISTER()
{
	OS_echo "DegPool: will do cmd sio stat, patch start."
    do_diagnose "sio stat"
}

function PATCH_START()
{
	#打补丁后，执行sio stat触发初始化
	BDM_PATCH_UNREGISTER
    return 
}
function PATCH_END()
{
	return
}
function PATCH_ROLLSTART()
{
	#补丁卸载后，删除补丁可能产生的文件
	rm -f $FW_PATH
	OS_echo "DegPool: rm $FW_PATH, patch rollstart."
	return
}
function PATCH_ROLLEND()
{
	return
}
#start：打补丁前需要执行的操作，脚本的执行时间点在替换文件前
#end：打补丁后需要执行的操作，脚本的执行时间点在替换文件后
#rollstart：回滚补丁时需要执行的操作，脚本的执行时间点在文件被恢复之前。
#rollend：回滚补丁时需要执行的操作，脚本的执行时间点在文件被恢复之后。
#PATCH_CLOSE_SWITCH:先读取性能统计开关的状态，将其值保存到switch中,并关闭性能统计开关
#PATCH_OPEN_SWITCH:如果用户之前是打开状态，将其开关打开
L_CMD=$1
case $L_CMD in
        "start") 
                PATCH_START
                ;;
        "end") 
                PATCH_END
                ;;
        "rollstart") 
                PATCH_ROLLSTART
                ;;
        "rollend") 
                PATCH_ROLLEND
                ;;
        *)
                OS_echo "unsupported option."
esac
exit 0

