You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.6 KiB
Bash

# fake time about functions encapsulation
# Longwei Lai
###################################################################
source "${____FWK_SCRIPT_PATH}/lnx_fwk_defs.sh"
# read current fake time setting
# arguments:
# N/A
# returns:
# echo style:
# faketime or "no faketime"
# return style:
# N/A
function read_faketime()
{
local faketime=
if [ -f "${____FWK_SVR_FAKETIME_OPTION_FILE}" ]; then
faketime="`cat "${____FWK_SVR_FAKETIME_OPTION_FILE}"`"
fi
if [ -z "${faketime}" ]; then
echo -n "no faketime"
return
fi
local now_time="`date "+%Y-%m-%d %H:%M:%S"`"
local faketime_begin=
if [ -f "${____FWK_SVR_FAKETIME_BEGIN_OPTION_FILE}" ]; then
faketime_begin="`cat "${____FWK_SVR_FAKETIME_BEGIN_OPTION_FILE}"`"
else
faketime_begin="${now_time}"
echo -n "${faketime_begin}" > "${____FWK_SVR_FAKETIME_BEGIN_OPTION_FILE}"
fi
local now_ts="`date -d "${now_time}" '+%s'`"
local faketime_begin_ts="`date -d "${faketime_begin}" '+%s'`"
local diff_time=$((${now_ts} - ${faketime_begin_ts}))
local faketime_ts="`date -d "${faketime}" '+%s'`"
local now_faketime_ts=$((${faketime_ts} + ${diff_time}))
local real_faketime="`date -d "@${now_faketime_ts}" '+%Y-%m-%d %H:%M:%S'`"
echo -n "${real_faketime}"
}
# clear fake time setting
# arguments:
# N/A
# returns:
# echo style:
# N/A
# return style:
# N/A
function clear_faketime()
{
if [ -f "${____FWK_SVR_FAKETIME_OPTION_FILE}" ]; then
echo -n "" > "${____FWK_SVR_FAKETIME_OPTION_FILE}"
fi
}