#!/usr/bin/env bash
|
|
# huangyongxing@yeah.net
|
|
# 模拟客户端编译运行管理
|
|
|
|
BASE_DIR=$(cd $(dirname $0); pwd)
|
|
|
|
cd ${BASE_DIR}/
|
|
APP_PATH=$(pwd)/config
|
|
|
|
SVR_PATH=$(dirname $(dirname ${BASE_DIR}))
|
|
BEAM_PATH=${SVR_PATH}/ebin
|
|
|
|
ERL_OPTION_NO_SMP="+P 204800 +K true +A 100 +spp true -smp disable -hidden +sbwt none"
|
|
ERL_OPTION_SMP="+P 204800 +K true +A 100 +spp true -smp enable -hidden +sbwt none"
|
|
|
|
# ERL=/opt/erlang-otp-19.3/bin/erl
|
|
# ERL=/opt/erlang-otp-23.2.6/bin/erl
|
|
ERL=erl
|
|
|
|
function fun_start() {
|
|
# 切换到BEAM_PATH,以确保logs目录的相对位置正确
|
|
cd ${BEAM_PATH}
|
|
local nodeName=imitation$RANDOM@127.0.0.1
|
|
local cookie=test
|
|
"${ERL}" ${ERL_OPTION_SMP} -name ${nodeName} -setcookie ${cookie} -boot start_sasl -sasl sasl_error_logger false -sasl errlog_type error -pa ${APP_PATH} -pa ${SVR_PATH}/config -s cli_simu start
|
|
}
|
|
|
|
function fun_make() {
|
|
cd ${SVR_PATH}
|
|
# "${ERL}" -noinput -smp enable -make
|
|
|
|
# local makeOptions='[{i,"include"},{outdir,"ebin"}]'
|
|
# "${ERL}" -noinput -smp enable -eval "Files = filelib:wildcard(\"test/cli_simu/src/*.erl\"), make:files(Files, ${makeOptions})" -s c q
|
|
|
|
"${ERL}" -noinput -smp enable -eval "Files = filelib:wildcard(\"test/cli_simu/src/**/*.erl\"), make:files(Files)" -s c q
|
|
}
|
|
|
|
function usage() {
|
|
cat <<EOF
|
|
--------------------------------------------------------------------------
|
|
m 编译
|
|
s 开启模拟客户端管理器
|
|
q 退出
|
|
(10分钟未输入指令将自动退出)
|
|
--------------------------------------------------------------------------
|
|
EOF
|
|
}
|
|
|
|
function main() {
|
|
local input
|
|
usage
|
|
while read -t 600 input
|
|
do
|
|
cd ${APP_PATH}
|
|
case "$input" in
|
|
"m")
|
|
fun_make
|
|
;;
|
|
"s")
|
|
fun_start
|
|
;;
|
|
"q")
|
|
break;;
|
|
*)
|
|
continue;;
|
|
esac
|
|
usage
|
|
done
|
|
}
|
|
|
|
main
|