150 lines
4.4 KiB
Bash
150 lines
4.4 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
#-------------------------------------------------
|
||
|
|
# 公共开发工具
|
||
|
|
# @author yeahoo2000@gmail.com
|
||
|
|
#-------------------------------------------------
|
||
|
|
if [ "" == "$ROOT" ]; then
|
||
|
|
echo -e "\e[91m>>\e[0;0m 此脚本必须通过tools/dev.sh调用才能正常工作"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# 生成配置文件模板
|
||
|
|
DOC[gen_cfg]="生成配置文件模板"
|
||
|
|
fun_gen_cfg(){
|
||
|
|
local file=$ROOT/tools/cfg.ini
|
||
|
|
if [ -f $file ]; then
|
||
|
|
read -p " [93m=> 配置文件已经存在,是否生成新文件并覆盖它?[0;0m[y/n]" choice
|
||
|
|
if [[ $choice != "y" ]]; then
|
||
|
|
exit 0
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
cat > $file <<EOF
|
||
|
|
[default]
|
||
|
|
;=== 公共配置 ==========================================
|
||
|
|
; 模块作者标志
|
||
|
|
AUTHOR=xxxx@xxx.xxx
|
||
|
|
; 游戏代号
|
||
|
|
GAME_CODE=zsyz
|
||
|
|
|
||
|
|
;=== 服务端配置(如不需要,无需理会) ==========================
|
||
|
|
; 域名
|
||
|
|
HOST=local.dev
|
||
|
|
; erl执行程序所在路径
|
||
|
|
; ERL="/cygdrive/c/Program Files/erl6.4/bin/erl"
|
||
|
|
; WERL="/cygdrive/c/Program Files/erl6.4/bin/werl"
|
||
|
|
ERL=erl
|
||
|
|
WERL=werl
|
||
|
|
; erlang节点通讯cookie
|
||
|
|
ERL_COOKIE=k35bz75vc881x
|
||
|
|
; erl节点间连接端口范围
|
||
|
|
ERL_PORT_MIN=40001
|
||
|
|
; erl节点间连接端口范围
|
||
|
|
ERL_PORT_MAX=44000
|
||
|
|
; erl文件编译参数
|
||
|
|
; ERL_MAKE_PARAM="{d, dbg_tester}, {d, debug}, {d, disable_auth}, {d, enable_gm_cmd}"
|
||
|
|
ERL_MAKE_PARAM="{d, disable_auth}, {d, enable_gm_cmd}"
|
||
|
|
; 游戏节点对外端口偏移,例:如果设为8000,区号为10的节点端口为8000+10
|
||
|
|
PORT_OFFSET=9000
|
||
|
|
; 数据库配置
|
||
|
|
DB_HOST=localhost
|
||
|
|
DB_PORT=3306
|
||
|
|
DB_USER=root
|
||
|
|
DB_PASS=123456
|
||
|
|
; oms数据库名
|
||
|
|
OMS_DB_HOST="127.0.0.1"
|
||
|
|
OMS_DB_PORT=3306
|
||
|
|
OMS_DB_USER=root
|
||
|
|
OMS_DB_PASS=asdf
|
||
|
|
OMS_DB_NAME="oms"
|
||
|
|
; 产品ID
|
||
|
|
PRODUCT_ID=1
|
||
|
|
|
||
|
|
; 如果在cygwin下工作请设置以下两个变量
|
||
|
|
; ROOT=d:/zsyz.dev
|
||
|
|
; ZONE_BASE=d:/zsyz.dev/zone
|
||
|
|
; cocos_creator=/Applications/CocosCreator.app/Contents/MacOS/CocosCreator
|
||
|
|
EOF
|
||
|
|
|
||
|
|
INFO "已经生成配置文件: $file"
|
||
|
|
}
|
||
|
|
|
||
|
|
DOC[pull]="更新所有的源码仓库"
|
||
|
|
fun_pull(){
|
||
|
|
for v in ${ROOT}/$1*; do
|
||
|
|
if [ -d $v/.git ]; then
|
||
|
|
echo ---------------------------------------------
|
||
|
|
INFO "正在更新源码库: \e[92m$(basename $v)\e[0;0m($(cd $v&&git describe --contains --all HEAD))"
|
||
|
|
echo ---------------------------------------------
|
||
|
|
cd $v && git pull
|
||
|
|
elif [ -d $v/.svn ]; then
|
||
|
|
echo ---------------------------------------------
|
||
|
|
INFO "正在更新源码库: \e[92m$(basename $v)\e[0;0m"
|
||
|
|
echo ---------------------------------------------
|
||
|
|
cd $v && svn update
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
DOC[status]="查看所有源码仓库的状态信息"
|
||
|
|
fun_status(){
|
||
|
|
for v in ${ROOT}/*; do
|
||
|
|
if [ -d $v/.git ]; then
|
||
|
|
echo ---------------------------------------------
|
||
|
|
INFO "源码库\e[92m$(basename $v)\e[0;0m的状态信息:"
|
||
|
|
echo ---------------------------------------------
|
||
|
|
cd $v && git status
|
||
|
|
elif [ -d $v/.svn ]; then
|
||
|
|
echo ---------------------------------------------
|
||
|
|
INFO "源码库\e[92m$(basename $v)\e[0;0m的状态信息:"
|
||
|
|
echo ---------------------------------------------
|
||
|
|
cd $v && svn info
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
DOC[gen_proto]="生成协议相关文件"
|
||
|
|
fun_gen_proto(){
|
||
|
|
INFO "正在生成协议相关文件..."
|
||
|
|
home=${ROOT}/tools/gen_proto
|
||
|
|
|
||
|
|
# 处理服务端生成
|
||
|
|
if [ -d ${ROOT}/server ]; then
|
||
|
|
if [ ! -d $home ]; then
|
||
|
|
ERR "协议配置目录不存在"
|
||
|
|
fi
|
||
|
|
cd ${home}
|
||
|
|
mkdir -p ebin
|
||
|
|
mkdir -p ${home}/cli ${ROOT}/server/src/proto
|
||
|
|
$ERL -noshell -pa "${ROOT}/tools/ebin" -pa "./ebin" -eval "make:all()" -eval "gen_proto:compile(all)" -s c q
|
||
|
|
fi
|
||
|
|
if [ -d ${ROOT}/data/lua ]; then
|
||
|
|
INFO "data_protocol.lua 更新成功"
|
||
|
|
cp -f ${ROOT}/tools/gen_proto/cli/data_protocol.lua ${ROOT}/data/lua
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
DOC[gen_map]="生成地图数据文件"
|
||
|
|
fun_gen_map(){
|
||
|
|
INFO "正在生成地图数据文件..."
|
||
|
|
fun_gen_data map_data
|
||
|
|
}
|
||
|
|
|
||
|
|
DOC[replace]="指定目录关键词替换"
|
||
|
|
fun_replace(){
|
||
|
|
dir=$ROOT/$1
|
||
|
|
if [ ! -d $dir ]; then
|
||
|
|
echo "目录不存在"
|
||
|
|
exit
|
||
|
|
fi
|
||
|
|
s=$(check_empty "请输入需要替换的关键词" $2)
|
||
|
|
t=$(check_empty "请输入替换后的目标关键词" $3)
|
||
|
|
INFO "正在替换目录[$dir]...[$s]=>[$t]"
|
||
|
|
cd $dir
|
||
|
|
find . -type f|xargs sed -i '' "s/$s/$t/g"
|
||
|
|
}
|
||
|
|
|
||
|
|
fun_git_diff(){
|
||
|
|
echo "git diff $2 $3"
|
||
|
|
cd $1 && git diff $2 $3
|
||
|
|
}
|