| #!/bin/sh |
| |
| #获取git中两版本间发生变动的文件列表(区间 前$1开 后$2闭) |
| git_files=($(git log --pretty=format:"" --name-only "$1..$2")) |
| |
| #待打包文件列表(空格分割) |
| res_files="" |
| |
| # 重复文件列表 |
| repeat_files=() |
| ignore_files=(shopxx.xml shopxx.properties pom.xml) |
| |
| # tomcat部署的项目路径 |
| web_dir="/home/wcq/projects/gj/src/main/webapp" |
| work_dir=$PWD |
| cd $web_dir |
| |
| #处理文件,找到需要打包的文件 |
| for ss in ${git_files[@]}; do |
| |
| #去掉重复的文件: 采取如下遍历方案 |
| for ss_repeat in ${repeat_files[@]}; do |
| if [[ $ss_repeat == $ss ]]; then |
| # echo "重复:"$ss |
| ss="" |
| break |
| fi |
| done |
| repeat_files=(${repeat_files[@]} $ss) |
| |
| #过滤掉不想打包的文件 |
| for ss_ignore in ${ignore_files[@]}; do |
| if [[ $ss == */$ss_ignore ]]; then |
| #echo "排除:"$ss; |
| ss="" |
| break |
| fi |
| done |
| |
| #开始处理文件路径 |
| # 页面文件(jsp、ftl、js、css、图片等等) |
| if [[ $ss == src/main/webapp/* ]]; then |
| ss=$(echo $ss | sed 's/^src\/main\/webapp\///g') |
| |
| # 系统配置文件 |
| elif [[ $ss == src/main/resources/* ]]; then |
| ss=$(echo $ss | sed 's/^src\/main\/resources/WEB-INF\/classes/g') |
| |
| # 后端Java文件 |
| elif [[ $ss == src/main/java/* ]]; then |
| ss_temp=${ss##*/} |
| ss_temp=${ss_temp/".java"/"*.class"} |
| ss_dir=$(echo $ss | sed 's/^src\/main\/java\///g') |
| ss_dir=${ss_dir%/*} |
| |
| ss="" |
| find WEB-INF/classes/$ss_dir -name $ss_temp >$work_dir"/"git-package_.tmp |
| while read line; do |
| ss=$ss" "$line |
| done <$work_dir"/"git-package_.tmp |
| rm -rf $work_dir"/"git-package_.tmp |
| |
| # 其他不处理 |
| else |
| ss="" |
| fi |
| |
| # 将待处理的文件加入列表 |
| if [[ $ss ]]; then |
| |
| res_files=$res_files" "$ss |
| fi |
| done |
| |
| #文件打包 |
| package_name="update_$(date +%Y%m%d_%H%M%S).zip" |
| #tar -zcvf $package_name".tar.gz" $res_files |
| zip -q $package_name $res_files |
| mv $package_name $work_dir/$package_name |
| |
| cd $work_dir |
| echo "patch success: $package_name" |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!