update_script/hotfix_game.sh

132 lines
4.2 KiB
Bash

#!/bin/bash
#########################################################################
# File Name: hotfix.sh
# Created on: 2019-07-15 16:31:18
# Author: Wu Kang
# Last Modified: 2021-09-02 19:09:43
# Description:
#########################################################################
branch=$1
package=$2
packages=${package}.tar.gz
usage(){
echo -e "\033[32mUsage: $0 {branch}\033[0m"
echo "branch has { master | online1.0 | project0.9 | project0.92}"
exit 7;
}
if [ ! $branch ];then
usage
fi
BASE_DIR=/data/update/project/${branch}
echo "${BASE_DIR}"
if [ ! -d $BASE_DIR ];then
echo -e "\033[31myour input branch not exist\033[0m"
echo -e "\033[31mplease check your input branch!!!\033[0m"
echo -e "\033[31mgood bye...\033[0m"
exit 7
fi
cd ${BASE_DIR}/miduo_server || exit
git branch
git pull
#使用前需要使用 sudo yum install jq 安装jq工具
check_json(){
path=${1}
if jq empty "${path}"; then
echo "${path} 文件是有效的JSON格式。"
else
echo "${path} 文件不是有效的JSON格式。"
exit 0
fi
}
#校验文件
check_json ${BASE_DIR}/miduo_server/conf/hotfix.json
check_json ${BASE_DIR}/miduo_server/conf/c_database_version.json
#cd ${BASE_DIR}/miduo_protocol || exit
#git branch
#git pull
##protobuf
#cd ${BASE_DIR}/miduo_protocol || exit
#rm -rf ./protobuf_temp
#mkdir ./protobuf_temp
## shellcheck disable=SC2038
#find ./protos -name "*.proto" -type f|xargs -i protoc --proto_path=./protos --java_out=./protobuf_temp {}
##find ./protos -name "*.proto" -type f -exec protoc --proto_path=./protos --java_out=./protobuf_temp {} +
#rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/global/*
#rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/protocols/*
#rm -rf ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/world/*
#cp -rf ./protobuf_temp/rpc/global ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/global
#cp -rf ./protobuf_temp/rpc/protocols ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/protocols
#cp -rf ./protobuf_temp/rpc/world ${BASE_DIR}/miduo_server/gamecommon/src/main/java/rpc/world
#gradlew build
cd ${BASE_DIR}/miduo_server || exit
echo "gradlew clean..."
./gradlew clean
echo "gradlew build..."
./gradlew build
if [ $? != '0' ];then
echo "build error... please check your code !!!"
exit 7
fi
#生成jar
echo "gradlew jar..."
./gradlew jar
echo "gradlew copyJars..."
./gradlew copyJars
cd ${BASE_DIR}/data_excel || exit
svn up
cd ${BASE_DIR}/execl_to_txt || exit
java -Dfile.encoding=UTF-8 -Djava.ext.dirs=./lib ExcelUtils
#热更地址
my_dir=${BASE_DIR}/hotfix/conf
if [ ! -d "$my_dir" ]; then
echo "创建文件夹"
mkdir -p ${my_dir}/server
mkdir -p ${my_dir}/hotswap
fi
rm -rf ${BASE_DIR}/hotfix/conf/*.json
cp -rf ${BASE_DIR}/miduo_server/conf/c_database_version.json ${BASE_DIR}/hotfix/conf
cp -rf ${BASE_DIR}/miduo_server/conf/hotfix.json ${BASE_DIR}/hotfix/conf
cd ${BASE_DIR} || exit
find hotfix/conf/ -type f -name "*.txt" -delete
#find hotfix/conf/ -type f -name "*.class" | xargs rm -rf
find hotfix/conf/ -type f -name "*.class" -delete
cat ${BASE_DIR}/miduo_server/conf/c_database_version.json |awk -F':' '/tables/{print $2}'|tr -d '"'|tr '|' '\n'|xargs -i find ${BASE_DIR}/miduo_server/conf/server -name "{}.txt"|xargs -i cp {} ${BASE_DIR}/hotfix/conf/server
cat ${BASE_DIR}/miduo_server/conf/hotfix.json |grep name|awk -F'"' '{print $4}'|xargs -i find ${BASE_DIR}/miduo_server/serverlogic/build -name "{}"|xargs -i cp {} ${BASE_DIR}/hotfix/conf/hotswap
tree hotfix
echo -e "cat miduo_server/conf/c_database_version.json \n"
cat ${BASE_DIR}/miduo_server/conf/c_database_version.json
echo -e "\n cat miduo_server/conf/hotfix.json \n"
cat ${BASE_DIR}/miduo_server/conf/hotfix.json
echo -e "\n"
cd ${BASE_DIR}/hotfix || exit
tar -czvf hotfix.tar.gz ./*
mv hotfix.tar.gz /data/update/package/${packages}
echo "打包${packages}完成"
#if [ ! -z ${ip} ];then
# rsync -arpzv ./jieling ${ip}:/data/jieling2/
#fi
#if [ ! -z ${ip} ];then
# rsync -arpzv --exclude ".git" --exclude ".svn" --exclude ".sh" --exclude=application*.properties jieling/conf/ ${ip}:/data/${core}/conf/
# if [ $? != '0' ];then
# echo "上传失败...请检查网络..."
# exit 7
# fi
#fi