#!/bin/bash
moduleName=$1
BasePath="/home/service/"
updateFile=()
getCurrentDirectoryFile(){
files=()
for file in *; do
if [ -f "$file" ]; then
files+=("$file")
fi
done
for file in "${files[@]}"; do
if [[ "$file" == *.jar ]]; then
moduleName=$(echo "$file" | cut -d '-' -f 1-2)
updateFile+=("$file")
fi
done
}
echo " 开始更新...."
if [ "$1" == "" ]; then
getCurrentDirectoryFile
echo "moduleName ===> $moduleName"
echo " 模块名为空,将会根据$moduleName 进行更新或者以如下方式启动 ./update.sh oa-executive"
fi
BackupFile(){
echo " 备份$1"
now=$(date +%Y%m%d)
mv $1 "$1.bak$now"
echo " $1 ====> $1.bak$now"
}
updateFilePath(){
for folder in "${updateFile[@]}"
do
echo " $folder"
updateFileDir=()
updateFileDir=$(find "$BasePath" -name "$folder" -type f -exec dirname {} \; | sort -u)
echo "文件 $folder 出现在以下文件夹中:"
echo "$updateFileDir"
for dir in $updateFileDir
do
BackupFile $dir/$folder
cp $folder $dir/$folder
done
done
}
updateFilePath
getFlag(){
if [ -f "$1" ]; then
echo " 将会更新 $1"
return 1
else
return 0
fi
}
rpcPackage=$moduleName"-service-rpc-atf-5.0.0-SNAPSHOT.jar"
getFlag "$moduleName-api.jar"
ApiFlag=$?
getFlag "$moduleName-service.jar"
serviceFlag=$?
getFlag "$rpcPackage"
rpcFlag=$?
if [ $rpcFlag == "1" ]; then
if (( $serviceFlag == "0" )); then
docker service update --force "$moduleName-service"
fi
fi
if [ $ApiFlag == "1" ]; then
docker service update --force "$moduleName-api"
fi
if [ $serviceFlag == "1" ]; then
docker service update --force "$moduleName-service"
docker service logs --tail 100 -f "$moduleName-service"
fi