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.
zeus/framework/shells/misc_scripts/lnx_logic_serverbuild.sh

66 lines
2.3 KiB
Bash

# linux script logic server build(included tarball) about functions encapsulation
# Longwei Lai
###################################################################
source "${____LOGIC_SCRIPT_PATH}/lnx_fwk_defs.sh"
source "${____LOGIC_SCRIPT_PATH}/lnx_logic_defs.sh"
# return make server
function make_server()
{
local debug_opt=FALSE
local isdebug_prompt=release
local make_flags="config=release"
local debug_flag="`echo -n "$1" | tr [:lower:] [:upper:]`"
if [ "${debug_flag}" = "DEBUG" -o "${debug_flag}" = "DBG" -o "${debug_flag}" = "D" ]; then
debug_opt=TRUE
isdebug_prompt=debug
make_flags="config=debug"
fi
local product_opt="product"
local premake_path="${____LOGIC_SCRIPT_PATH}/"
local internal_flag="`echo -n "$2" | tr [:lower:] [:upper:]`"
if [ "${internal_flag}" = "INTERNAL" -o "${internal_flag}" = "INTERNAL_ENV" -o "${internal_flag}" = "INL" ]; then
product_opt="internal"
elif [ "${internal_flag}" = "PRESSURE_TEST" -o "${internal_flag}" = "PRESSURE_TEST_ENV" -o "${internal_flag}" = "PT" ]; then
product_opt="pressure_test"
fi
# stop all servers
log_info "stop all servers..."
stop_all_servers 1>/dev/null 2>&1
# make
log_info "making(${isdebug_prompt}, ${product_opt})..."
local make_log_path="${SVR_PATH}/.make_logs"
mkdir -p "${make_log_path}"
local make_log_file="${make_log_path}/make_log.`date '+%Y%m%d_%H%M%S_%N'`"
log_info "make log redirect to [${make_log_file}]..."
( cd "${SVR_PATH}" && make linux "${make_flags}" 2>&1 | tee "${make_log_file}" | grep -e '\(error\)\|\(warning\)'; exit ${PIPESTATUS[0]} )
if [ $? -ne 0 ]; then
log_err "make server failed"
return 1
fi
# generate option file
log_info "generate server options..."
mkdir -p "${____FWK_SVR_OPTIONS_PATH}"
echo -n ${debug_opt} > "${____FWK_SVR_DEBUG_OPTION_FILE}"
}
function make_project()
{
local projname="$1"
local make_flags="$2"
local make_log_file="$3"
log_info "building ${projname} project..."
( cd "${make_path}" && make -f "${projname}.make" "${make_flags}" 2>&1 | tee "${make_log_file}" | grep -v '): warning CS.*'; exit ${PIPESTATUS[0]} )
if [ $? -ne 0 ]; then
log_err "make failed(build ${projname} project failed)"
return 1
fi
}