#!/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 java17 -Dfile.encoding=UTF-8 -cp .:./lib/* ExcelUtils #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