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.
164 lines
3.4 KiB
Bash
164 lines
3.4 KiB
Bash
#!/usr/bin/env bash
|
|
# @author 郑宏伟
|
|
# @brief MACOS服务器启动脚本
|
|
|
|
____APP_START_CONF_NAME=".app.mac.cfg"
|
|
|
|
SCRIPT_PATH="$(cd "`dirname "$0"`" && pwd)"
|
|
FRAMEWORK_PATH="`dirname "${SCRIPT_PATH}"`" # .../framework
|
|
MISC_SCRIPTS_PATH="${SCRIPT_PATH}/misc_scripts" # .../misc_scripts
|
|
|
|
function _log()
|
|
{
|
|
echo "[Log] $@"
|
|
}
|
|
|
|
function EnvEnsure()
|
|
{
|
|
local os_type=`uname`
|
|
if [ $os_type != "Darwin" ];then
|
|
_log "illegal os: $os_type"
|
|
exit 1
|
|
fi
|
|
|
|
local cpu=`sysctl -n machdep.cpu.core_count`
|
|
export SKYNET_THREAD=`expr ${cpu} \* 2`
|
|
}
|
|
|
|
function Main()
|
|
{
|
|
ParseAgrs $@
|
|
CreateConfigFile ${____APP_START_CONF_NAME}
|
|
EnvEnsure
|
|
${FRAMEWORK_PATH}/skynet/skynet ${____APP_START_CONF_NAME} "${ARG_TYPE}-${ARG_PRO}-${ARG_ENV}"
|
|
}
|
|
|
|
function Help()
|
|
{
|
|
echo 'Usage:'
|
|
echo 'start_server.sh -p 应用项目 -e 应用环境 -t 应用类型 [-d DBCONF名]'
|
|
echo 'Options:'
|
|
echo ' -p 必需 应用项目'
|
|
echo ' 奥斯曼大帝国:boe'
|
|
echo ' 西部:ww'
|
|
echo ' -e 必需 应用环境'
|
|
echo ' 开发环境:dev'
|
|
echo ' 集成测试:sit'
|
|
echo ' 产品环境:pro'
|
|
echo ' -t 必需 应用类型'
|
|
echo ' 游戏服:gs'
|
|
echo ' 登录服:ls'
|
|
echo ' 全局服:ms'
|
|
echo ' WEB服:ws'
|
|
echo ' -d 可选 DBCONF名'
|
|
}
|
|
|
|
function ProjectAdapter()
|
|
{
|
|
case ${1} in
|
|
boe|ww) ARG_PRO="$OPTARG";;
|
|
?)
|
|
_log "未知[应用项目]参数"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function EnvAdapter()
|
|
{
|
|
case ${1} in
|
|
dev|sit|pro) ARG_ENV="$OPTARG";;
|
|
?)
|
|
_log "未知[应用环境]参数"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function TypeAdapter()
|
|
{
|
|
case ${1} in
|
|
ls)
|
|
ARG_TYPE="$OPTARG"
|
|
ARG_START_CONF=login/snconfig
|
|
;;
|
|
ms)
|
|
ARG_TYPE="$OPTARG"
|
|
ARG_START_CONF=global/snconfig
|
|
;;
|
|
ws)
|
|
ARG_TYPE="$OPTARG"
|
|
ARG_START_CONF=web/webconf
|
|
;;
|
|
gs|rw|cp)
|
|
ARG_TYPE="$OPTARG"
|
|
ARG_START_CONF=game/snconfig
|
|
;;
|
|
?)
|
|
_log "未知[应用类型]参数"
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
function ParseAgrs()
|
|
{
|
|
while getopts :p:e:t:hd: OPT
|
|
do
|
|
case $OPT in
|
|
p) ProjectAdapter $OPTARG;;
|
|
e) EnvAdapter $OPTARG;;
|
|
t) TypeAdapter $OPTARG;;
|
|
d) DBCONF_NAME="$OPTARG";;
|
|
h) Help;exit 0;;
|
|
?)
|
|
_log "未知参数"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
function auto_update_db()
|
|
{
|
|
local dbconf="dbconf"
|
|
if [[ ! -z ${DBCONF_NAME} ]]; then
|
|
dbconf="${DBCONF_NAME}"
|
|
fi
|
|
|
|
if [[ -z ${dbconf} ]]; then
|
|
_log "dbconf name err"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ${ARG_ENV} == "dev" && ${ARG_TYPE} == "ms" ]]; then
|
|
sh ${MISC_SCRIPTS_PATH}/mac_logic_updatedb.sh ${dbconf}
|
|
fi
|
|
}
|
|
|
|
function CreateConfigFile()
|
|
{
|
|
local STARTFILE=${1}
|
|
if [[ -z ${ARG_PRO} || -z ${ARG_ENV} || -z ${ARG_TYPE} ]]; then
|
|
_log "缺少参数";exit 2;
|
|
fi
|
|
|
|
rm -rf ${STARTFILE}
|
|
cat >> ./${STARTFILE} << EOF
|
|
include "framework/snconfig"
|
|
include "${ARG_START_CONF}"
|
|
app_type="${ARG_TYPE}"
|
|
app_project="${ARG_PRO}"
|
|
app_env="${ARG_ENV}"
|
|
EOF
|
|
|
|
if [[ ! -z ${DBCONF_NAME} ]]; then
|
|
echo "dbconf=\"${DBCONF_NAME}\"" >> ./${STARTFILE}
|
|
fi
|
|
|
|
# 自动更新数据库文件
|
|
auto_update_db
|
|
}
|
|
|
|
Main $@
|