Browse Source

Optimized build script to support applying local repository url for the submodules;

tags/1.2.0^2
huanghaiquan 5 years ago
parent
commit
06dd59aafc
2 changed files with 40 additions and 3 deletions
  1. +1
    -0
      build/env.sh
  2. +39
    -3
      build/update.sh

+ 1
- 0
build/env.sh View File

@@ -48,6 +48,7 @@ SKIP_TESTS=0

#初始化参数:是否略过子项目的更新;
SKIP_SUBMODULES_UPDATE=0

#检查输入参数
for i in $*; do
case $i in


+ 39
- 3
build/update.sh View File

@@ -23,8 +23,44 @@ then
echo "代码库已经最新,跳过更新操作。。。"
${RTN}
fi

#先执行初始化; 注:此命令只在 .git/config 文件中没有相应子模块的配置时才生效,重复执行并不会更改已有的配置;
git submodule init

#根据本地仓库的 .git 目录下是否存在 local.sh 脚本判断是否在更新子模块的代码库之前执行本地化配置;
echo "检查是否执行子模块的本地化配置。。。"
#判断本地化配置脚本是否存在;
LOCAL_CONFIG="$BASE_DIR/.git/local.config"
if [ -f $LOCAL_CONFIG ]
then
#执行子模块的本地化配置,将子模块的远程仓库地址指向本地;
echo "---------------- 执行子模块的本地化配置 ----------------"
#解析本地配置
KEYS=($(cat $LOCAL_CONFIG | awk -F '=' 'length($1)>0 { print $1}'))
VALUES=($(cat $LOCAL_CONFIG | awk -F '=' 'length($2)>0 { print $2}'))
for ((i=0; i<${#KEYS[@]}; i ++));
do
echo "[$i]: git config ${KEYS[i]} ${VALUES[i]}"
git config ${KEYS[i]} ${VALUES[i]}

#检查执行结果是否正常
ERR=$?
if [ $ERR != 0 ]
then
echo "执行子模块的本地化配置的过程中发生了错误[$ERR]!!终止构建!!"
${RTN} $ERR
fi
done

echo "---------------- 完成子模块的本地化配置 ----------------"
else
echo "---------------- 执行子模块的公共配置 ----------------"
git submodule sync
fi

echo "---------------- 更新代码库 ----------------"
echo "---------------- 更新子模块代码库 ----------------"
cd $BASE_DIR
git submodule update --init --recursive

@@ -32,11 +68,11 @@ git submodule update --init --recursive
ERR=$?
if [ $ERR != 0 ]
then
echo "更新代码库时发生了错误!!返回错误码:$ERR"
echo "更新子模块代码库时发生了错误!!返回错误码:$ERR"
${RTN} $ERR
fi

#标记代码已经更新;
SUBMODULES_UPDATED=1

echo "---------------- 完成代码库更新 ----------------"
echo "---------------- 完成子模块代码库更新 ----------------"

Loading…
Cancel
Save