_mirror.utils.sh 2.7 KB
#!/bin/bash

#############################################
# help for the first checkout.
#############################################
function first_checkout()
{
    mirror_name=$1
    git_url=$2
    project_dir=$3
    sync_script=$4
    
    failed_msg "当前分支不是${mirror_name}镜像"; 
    
    cat <<END
创建${mirror_name}镜像的过程如下:
1. 在${mirror_name}上创建项目,
        可创建空项目,或从https://github.com/winlinvip/simple-rtmp-server拷贝过来。
2. 在本地虚拟机上:    
        git clone $git_url
        cd $project_dir && git checkout master && git branch 1.0release && git push origin 1.0release
3. 创建同步的branch:    
        git remote add upstream https://github.com/winlinvip/simple-rtmp-server.git
        git fetch upstream    
        git checkout upstream/master -b srs.master
        git checkout upstream/1.0release -b srs.1.0release
4. 执行本同步更新脚本,更新。
        bash $sync_script
END
}

#############################################
# branch master
#############################################
function sync_master()
{
    for ((;;)); do
        git checkout srs.master && git pull 
        ret=$?; if [[ 0 -ne $ret ]]; then 
            failed_msg "(master)更新github分支失败,自动重试";
            continue
        else
            ok_msg "(master)更新github分支成功"
        fi
        break
    done

    git checkout master && git merge srs.master
    ret=$?; if [[ 0 -ne $ret ]]; then failed_msg "(master)合并github分支失败, ret=$ret"; exit $ret; fi
    ok_msg "(master)合并github分支成功"
}

#############################################
# branch 1.0release
#############################################
function sync_1_0_release()
{
    for ((;;)); do
        git checkout srs.1.0release && git pull 
        ret=$?; if [[ 0 -ne $ret ]]; then 
            failed_msg "(1.0release)更新github分支失败,自动重试";
            continue
        else
            ok_msg "(1.0release)更新github分支成功"
        fi
        break
    done

    git checkout 1.0release && git merge srs.1.0release
    ret=$?; if [[ 0 -ne $ret ]]; then failed_msg "(1.0release)合并github分支失败, ret=$ret"; exit $ret; fi
    ok_msg "(1.0release)合并github分支成功"
}

#############################################
# push
#############################################
function sync_push()
{
    mirror_name=$1
    
    for ((;;)); do 
        git push
        ret=$?; if [[ 0 -ne $ret ]]; then 
            failed_msg "提交${mirror_name}分支失败,自动重试";
            continue
        else
            ok_msg "提交${mirror_name}分支成功"
        fi
        break
    done
    
    git checkout master
    ok_msg "${mirror_name}同步git成功"
}