有关sh脚本,优化svn管理android事务
来源:互联网 发布:表格管理系统源码 编辑:程序博客网 时间:2024/06/01 08:53
包含功能
- svn export android 代码
- 自动编译debug user版本
- 自动check fota升级需要用到的剩余空间大小
- 多个项目排序编译
脚本内容
custom.sh
#!/bin/bash# SUN:jicong.wang version 2.0param=$1path="http://192.168.1.233/svn/SPRD7731/trunk/MocorDroid6.0_Trunk_16b_rls1_W16.29.2"rpath="http://192.168.1.233/svn/sprd7731/trunk/MocorDroid6.0_Trunk_16b_rls1_W16.29.2_SUNVOV/C7367/C7367_HWD"gsm_path="http://192.168.1.233/svn/sprd7731/trunk/GSM/r11"eng_version="sp7731c_c7367_fwvga_oversea-userdebug"user_version="sp7731c_c7367_fwvga_oversea-user"out_file="sp7731c_c7367_fwvga"custom_list=("C7367_FWVGA_Driver_R8""C7367_FWVGA_R8_BengalHOTWAV_NOGPS_B1")##################################################################################################### call svn_function ####################################################################################################if [ ! -f "svn_function" ];then svn export --force http://192.168.1.233/svn/sprd7731/trunk/DOC/svn_functionelse echo "svn_function is exist!!!"fiecho "wangjicong $@"source svn_function $@
svn_function.sh
#!/bin/bash# SUN:jicong.wang version 3.0######################################################################### export gsm ########################################################################function export_gms(){ svn --force export ${gsm_path} ./ | tee gsm.txt; if grep -q "已导出版本" gsm.txt then echo 已导出 else echo "gsm export error">error.log export_gms fi }######################################################################### export all svn files and folders########################################################################function export_all(){ echo "-----------start to export all model-------------" index=0 for var in $list do index=`expr $index + 1` if [ $index -lt 10 ];then export_single $var "0"$index else export_single $var $index fi done export_gms export_check}######################################################################### export one file or folder########################################################################function export_single(){ svn --force export ${path}/$1 | tee svn_info/$2.txt; echo "$1 result is "$? >> svn_result.txt if grep -q 完成导出 svn_info/$2.txt || grep -q 已导出版本 svn_info/$2.txt then echo 已导出 else echo "$1 export error">error.log export_single $1 $2 fi }######################################################################### export result check########################################################################function export_check(){ echo "-----------start to check leave model-------------" for i in `ls svn_info/` do echo "$i "`tail -n 1 svn_info/$i`; done index=0 for var in ${custom_list[*]} do index=`expr $index + 1` echo r$index.txt`tail -n 1 r$index.txt`; done echo gsm.txt`tail -n 1 gsm.txt`; }######################################################################### export custom product code and resource########################################################################function export_custom(){ echo "-----------start to export all resource-------------" index=0 for var in ${custom_list[*]} do index=`expr $index + 1` svn --force export ${rpath}/$var ./ | tee r$index.txt; done index=0 for var in ${custom_list[*]} do index=`expr $index + 1` if grep -q "已导出版本" r$index.txt then echo r$index.txt`tail -n 1 r$index.txt`; else echo "resource $indext export error">error.log export_custom break fi done }######################################################################### make eng version########################################################################function make_eng_version(){ echo "-----------start to new eng version -------------" source build/envsetup.sh lunch_list=`print_lunch_menu` num="n" for var in $lunch_list do # echo $var if [ $var = $eng_version ];then echo $var break else num=$var fi done num=${num%.} echo "num is "$num lunch $num sprd=`echo $path | grep -i "SPRD"` if [ "$sprd" != "" ];then echo "start kheader" kheader fi make -j8 2>&1 |tee log.txt}######################################################################### check fota########################################################################function checkFota(){cp log.txt log.hgrep -A 1 "Created filesystem with" log.h >> fota_temp.hgrep -B 1 "system.img" fota_temp.h >> fota.hfota=`grep "Created filesystem with" fota.h `rm -rf log.h fota_temp.h fota.hfota_index=0for var in $fota do fota_index=`expr $fota_index + 1` if [ "$fota_index" = "7" ];then #echo $var total=${var##*/} #echo $total used=${var%%/*} #echo $used free1=`expr $total - $used` #echo $free1 free2=`expr $free1 \* 4096` #echo $free2 free3=`expr $free2 / 1024` #echo $free3 free=`expr $free3 / 1024` #echo $free if [ "50" -gt "$free" ]; then echo -e "\033[30;31m错误:Fota升级system剩余空间为$free"M",小于50M!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\033[0m" else echo -e "\033[30;32mFota升级system剩余空间为$free"M",大于50M\033[0m" fi break fi done}######################################################################### make eng version########################################################################function make_user_version(){ echo "-----------start to new usr version -------------" rm -rf out/target/product/$out_file/system/build.prop rm -rf out/target/product/$out_file/obj/ETC/system_build_prop_intermediates source build/envsetup.sh lunch_list=`print_lunch_menu` num="n" for var in $lunch_list do if [ $var = $user_version ];then echo $var break else num=$var fi done num=${num%.} echo $num lunch $num sprd=`echo $path | grep -i "SPRD"` if [ "$sprd" != "" ];then echo "start kheader" kheader fi make -j8 2>&1 |tee log.txt #6735 6737、展讯7.0的fota需要编译ota sprd=`echo $path | grep -E "MTK6735|7.0"` if [ "$sprd" != "" ];then make -j8 otapackage fi copyfile checkFota}######################################################################### cp mtk APDB file to out img folder########################################################################function cp_apdb_file_to_out_img(){ apdb=`find out/target/product/$out_file/obj/ -name "APDB*" -type f ! -name "*_ENUM"` echo $apdb cp -rfv $apdb out/target/product/$out_file/ echo "拷贝APDB文件到out img同级目录成功!"}######################################################################### export fail svn folder########################################################################function export_fail(){ echo "-----------start to check $parm model-------------" index=0 for var in $list do index=`expr $index + 1` if [ $index == $1 ];then if [ $1 -lt 10 ];then export_single $var "0"$1 else export_single $var $1 fi fi done }######################################################################### svn files and folders detail########################################################################function list_detail(){ index=0 for var in $list do index=`expr $index + 1` echo $index:$var done }######################################################################### cp out file to versionTools/image/########################################################################function copyfile(){ sprd=`echo $path | grep -i "SPRD"` if [ "$sprd" != "" ];then find out/target/product/$out_file/ -maxdepth 1 -type f -exec cp -rv {} versionTools/image/ \; chmod 777 versionTools/* else #echo -e "\033[30;31mMtk no need to cp versionTools!\033[0m" cp_apdb_file_to_out_img band_full=`grep "CUSTOM_MODEM" ./device/maisui/$out_file/ProjectConfig.mk | sed s/[[:space:]]//g` band=${band_full##*=} echo $band cp -rvf ./vendor/mediatek/proprietary/modem/$band/ ./out/target/product/$out_file/ fi}######################################################################### main ########################################################################param=$1ROOT=`pwd`"/svn_info";if [ ! -d "$ROOT" ];then mkdir $ROOT;filist=`svn list $path`if [ "$param" = "" ];then export_allelif [ "$param" = "c" ];then export_check elif [ "$param" = "r" ];then export_customelif [ "$param" = "ne" ];then make_eng_versionelif [ "$param" = "nu" ];then make_user_versionelif [ "$param" = "l" ];then list_detailelif [ "$param" = "cp" ];then copyfileelif [ "$param" = "cf" ];then checkFota else export_fail $1 fi
多个项目脚本排序编译
多个项目脚本排序编译,下班后打开脚本,第二天就可以收网,发版本了
make.sh
#!/bin/bash########################################################## createFloderSinglework#########################################################function createFolderSinglework(){ file=$1 if [ ! "$file" = "" ];then file_name=${file#./*} echo $file_name dir_name=${file_name%*.sh}"_"`date +%F` echo $dir_name if [ ! -d "$dir_name" ];then echo "start to mkdir file" mkdir $dir_name else echo "folder is exist" fi cp $file $dir_name fi}########################################################## svn export and make project#########################################################function doSingleProject(){ file=$1 if [ ! "$file" = "" ];then file_name=${file#./*} dir_name=${file_name%*.sh}"_"`date +%F` cd ./$dir_name #echo ./$dir_name/$dir_name source $file_name "" source $file_name r source $file_name nu cd - fi}########################################################## main #########################################################echo "====================编译文件列表==================="sh_file_list=`find ./* -maxdepth 0 -name "*.sh"`i=0for var in $sh_file_list do i=`expr $i + 1` echo " $i : "$var custom[$i]=$var doneechoecho "请选择项目脚本的数字 [eg: 1 2 3 ]"read make_files_listfor var in $make_files_list do echo "start create folder $var == ${custom[$var]} =======================" createFolderSinglework ${custom[$var]} donefor v in $make_files_list do echo "start make $v == ${custom[$v]} =======================" doSingleProject ${custom[$v]} done #########################################################
附件:
vesion.rar
阅读全文
0 0
- 有关sh脚本,优化svn管理android事务
- install_zj.sh脚本优化
- cache管理脚本monitor_cache.sh
- svn服务管理脚本
- 有关Android 内存优化
- android开发笔记之sh脚本
- Android脚本envsetup.sh逐行分析
- Android脚本envsetup.sh逐行分析
- android开发脚本之几个常用脚本sh
- loadrunner 脚本优化-事务时间简介
- android studio svn管理
- SVN 管理 Android 项目
- android studio svn管理
- 有关事务
- linux sh 脚本有关于文件判断操作符,与if配合实现逻辑控制
- Android build/envsetup.sh 脚本分析(lunch函数)
- Android init.rc如何启动service去执行sh脚本
- Android init.rc如何启动service去执行sh脚本
- TopK问题——统计大家最爱玩的游戏
- VideoView播放视频异常MediaPlayer: Error (1,-2147483648)
- EditText点击的时候软键盘上出现搜索按钮
- avalon与layui、easyui融合日志
- Windows下HDF5编译安装
- 有关sh脚本,优化svn管理android事务
- Web自动化测试一:Eclipse+TestNG单元测试框架搭建
- redis + spring + hibernate
- leetcode 88:Merge Sorted Array
- Date() 对象
- (原创)CentOS环境下搭建Nagios系统
- [Linux] source 命令
- MATLAB数据分析
- unity 与第三方库的交互