diff --git a/readme b/readme index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..9daeafb9864cf43055ae93beb0afd6c7d144bfa4 100644 --- a/readme +++ b/readme @@ -0,0 +1 @@ +test diff --git a/update.sh b/update.sh new file mode 100644 index 0000000000000000000000000000000000000000..3dfa6f2d8012e79c1cbfa3b417480ece9b2adb4d --- /dev/null +++ b/update.sh @@ -0,0 +1,155 @@ +#!/bin/bash + +# 按照 kernel.spec 的要求修改当次提交 +update_spec_changelog() +{ + OLD_VER=`cat SOURCE` + local VER=$1 + + STRING=(`echo $VER | tr '-' ' '`) + + VERSION=${STRING[0]} + RELEASE=${STRING[1]} + #echo ${STRING[@]} + + echo $VERSION + echo $RELEASE + + #--------------------- + # Update SOURCE + #--------------------- + # + echo $VER > ./SOURCE + + #--------------------- + # Update hulkrelease + #--------------------- + # %global hulkrelease 2101.1.0 + sed -i 's/^%global hulkrelease [0-9]\{4\}.[0-9]\{1,4\}.[0-9]\{1,4\}/%global hulkrelease '$RELEASE'/g' kernel.spec + + + #--------------------- + # Update hulkrelease + #--------------------- + # Release: %{hulkrelease}.0056 + NO=`cat kernel.spec | grep Release | grep hulkrelease | cut -d "." -f 2` + NO=`expr $NO + 1` + RELNO=`printf "%04d" $NO` + sed -i 's/^Release: %{hulkrelease}.[0-9]\{4\}/Release: %{hulkrelease}.'$RELNO'/g' kernel.spec + + #--------------------- + # Update changelog + #--------------------- + #Tue Feb 09 2021 Laibin Qiu - 4.19.90-2102.1.0.0056 + PATTERN="%changelog" + line=`grep "$PATTERN" kernel.spec -n | cut -d ":" -f 1` + echo $line + if [[ -n $line ]]; then + let line+=1 + fi + + # date "+%a %b %d %Y" + DATE=`date "+%a %b %d %Y"` + TITLE="* $DATE huwentao - $VER.$RELNO" + echo "$TITLE" + OLD_IFS=$IFS # 保存原始值 + IFS=$(echo -en "\n\b") # 改变IFS的值 + #echo "$IFS" | od -b + + echo "$OLD_VER...$VER" + cd /home/hwt/kernel && git log --oneline $OLD_VER...$VER --format="- %s" > 1.txt + COMMITLIST=$(cd /home/hwt/kernel && git log --oneline $OLD_VER...$VER --format="- %s") + pwd + cd - + pwd + sed -i ''${line}'a'${TITLE}'' kernel.spec + for i in ${COMMITLIST[@]}; + do + #echo $i + let line+=1 + sed -i ''"${line}"'a'${i}'' kernel.spec + done + let line+=1 + sed -i ''${line}'G' kernel.spec + + IFS=$OLD_IFS # 还原IFS的原始值 +} + + + +# 对当前 BRANCH 生成针对 tag 的 sepc diff 并提交到私人仓库 +# $1 BRANCH +# $2 TAG +commit_spec_changelog() +{ + local REMOTE=$1 + local TAG=$2 + local BRANCH=$3 + + git diff + git add SOURCE kernel.spec + git commit -m "release $TAG" + # 这里假定了 remote 是 gatieme + git push $REMOTE $BRANCH:$BRANCH +} + + +# 提交 PR +pull_spec_changelog() +{ + local TAG=$1 + local BRANCH=$2 + + curl -X POST --header 'Content-Type: application/json;charset=UTF-8' 'https://gitee.com/api/v5/repos/src-openeuler/kernel/pulls' -d '{"access_token":"xxx","title":"release '${TAG}'","head":"zhang-changzhong:'${BRANCH}'","base":"'${BRANCH}'"}' +} + + +update_commit_pull_branch() +{ + local REMOTE=$1 + local TAG=$2 + local BRANCH=$3 + + cd /home/hwt/src-kernel/ + git checkout $BRANCH + git pull + + # 按照 kernel.spec 的要求修改档次提交 + update_spec_changelog $TAG + + # 提交 commit 到私人仓库 + commit_spec_changelog $REMOTE $TAG $BRANCH + + # 提交 PR + pull_spec_changelog $TAG $BRANCH +} + + +update_main() +{ + local REMOTE=$1 + local TAG=$2 + + local BRANCHS=("openEuler-20.03-LTS-SP4") # "openEuler-20.03-LTS-Next" "openEuler-20.03-LTS" + + + for BRANCH in ${BRANCHS[@]}; + do + update_commit_pull_branch $REMOTE $TAG $BRANCH + done +} + +echo $# +if [ $# -eq 3 ] ; then + REMOTE=$1 + TAG=$2 + BRANCH=$3 + update_commit_pull_branch $REMOTE $TAG $BRANCH +elif [ $# -eq 2 ] ; then + REMOTE=$1 + TAG=$2 + update_main $REMOTE $TAG +else + $0 REMOTE TAG BRANCH + exit 0 +fi