#!/bin/bash cat <>/dev/null touch git-ensure-commit && echo "cd `pwd` &&" >git-ensure-commit && echo "bash `pwd`/git.commit.sh" >>git-ensure-commit && chmod +x git-ensure-commit && sudo rm -f /bin/git-ensure-commit && sudo mv git-ensure-commit /usr/local/bin/git-ensure-commit END echo "submit code to github.com" echo "argv[0]=$0" if [[ ! -f $0 ]]; then echo "directly execute the scripts on shell."; work_dir=`pwd` else echo "execute scripts in file: $0"; work_dir=`dirname $0`; work_dir=`(cd ${work_dir} && pwd)` fi work_dir=`(cd ${work_dir}/.. && pwd)` product_dir=$work_dir # allow start script from any dir cd $work_dir && work_branch=`git branch|grep "*"|awk '{print $2}'` && commit_branch=2.0release && git checkout $commit_branch ret=$ret; if [[ $ret -ne 0 ]]; then echo "switch branch failed. ret=$ret"; exit $ret; fi echo "work branch is $work_branch" echo "commit branch is $commit_branch" . ${product_dir}/scripts/_log.sh ret=$?; if [[ $ret -ne 0 ]]; then exit $ret; fi ok_msg "导入脚本成功" function remote_check() { remote=$1 url=$2 git remote -v| grep "$url" >/dev/null 2>&1 ret=$?; if [[ 0 -ne $ret ]]; then echo "remote $remote not found, add by:" echo " git remote add $remote $url" exit -1 fi ok_msg "remote $remote ok, url is $url" } remote_check origin git@github.com:ossrs/srs.git remote_check srs.winlin git@github.com:winlinvip/simple-rtmp-server.git remote_check srs.csdn git@code.csdn.net:winlinvip/srs-csdn.git remote_check srs.oschina git@git.oschina.net:winlinvip/srs.oschina.git remote_check srs.gitlab git@gitlab.com:winlinvip/srs-gitlab.git ok_msg "remote check ok" function sync_push() { for ((;;)); do git push $* ret=$?; if [[ 0 -ne $ret ]]; then failed_msg "Retry for failed: git push $*" sleep 3 continue else ok_msg "Success: git push $*" fi break done } sync_push origin sync_push srs.winlin sync_push srs.csdn sync_push srs.oschina sync_push srs.gitlab ok_msg "push branches ok" sync_push --tags srs.winlin sync_push --tags srs.csdn sync_push --tags srs.oschina sync_push --tags srs.gitlab ok_msg "push tags ok" git checkout $work_branch ok_msg "switch to work branch $work_branch" exit 0