MT8227L AndroidO repo代码所有子库镜像设置

主要用于没有gerrit服务器,只要git服务器的场景,有gerrit服务器就不需要这么操作了。

在"MT8227L AndroidO repo代码所有子库指向不同的两个远程地址 文章"的基础上编译脚本,在运行脚本的时候自动从MTK(ATC)代码服务器跟新,并且自动将更新的代码上传到我们自己的git服务器上。
编译python脚本,取名为 getnames_and_update_and_push-to-flyaduio.py 脚本文件下载路径如下:
https://download.csdn.net/download/jinron10/10698032 
内容如下:

#!/usr/bin/python3

import os
import sys

######remote = 'git@127.0.0.1:rk3229'
#####git@172.168.1.63/home/git/Project/8227L_project
#####remote = 'git@172.168.1.63:atc/android/o'
######remote = 'ssh://b_flyaudio001@release.autochips.com:29418'
flyaudio_remote = 'git@172.168.1.63:/home/git'
atc_remote = 'ssh://b_flyaudio001@release.autochips.com:29418'

if len(sys.argv) == 1:
    print('错误!请传入 xml 文件')
elif len(sys.argv) > 2:
    print('错误!传入参数太多')
else:
    print('传入的文件是 %s' % sys.argv[1])

with open(sys.argv[1], 'r') as fin:
    while True:
        linestr = fin.readline()
        if linestr == '':       #表示文件结束
            break 
        #####for project-list.txt       
        #else:
            #print(linestr)			
            #localpath = sys.path[0] + '/' + linestr        # git工程的本地绝对路径
            #remotepath = remote + '/' + linestr            # git工程远程相对路径
            #cmd = 'cd %s && git remote set-url autochips %s &&git push -u autochips android-trunk-o1.ac8227L && cd %s' % (localpath, remotepath, sys.path[0])
            #print(cmd)
            #os.system(cmd)
			#end for  project-list.txt
        print(linestr)
        #下面开始对本行内容分析
        if (('name=' in linestr) or ('name =' in linestr)) and (('project' in linestr) or ('path' in linestr)):   #本行内容含有name信息
            #print(linestr)
            #先无条件提取name路径
            charistr1 = 'name="'
            charistr2 = '"'
            namestr = linestr[linestr.index(charistr1)+len(charistr1) : linestr.index(charistr1)+len(charistr1)+ linestr[linestr.index(charistr1)+len(charistr1):].index(charistr2)]
            if 'path=' in linestr:            #如果path存在则用path的路径作为本地路径
                charistr1 = 'path="'
                charistr2 = '"'
                pathstr = linestr[linestr.index(charistr1)+len(charistr1) : linestr.index(charistr1)+len(charistr1)+ linestr[linestr.index(charistr1)+len(charistr1):].index(charistr2)]
            else:                             #如果path不存在,则认为path路径(本地路径)就是name路径
                pathstr = namestr
            print('name="%s", path="%s"' % (namestr, pathstr))
            path_m = pathstr
            if path_m == 'autochips':  #路径等于origin,那么不创建
                print(path_m)
            else:
                #下面开始初始化并提交git工程
                localpath = sys.path[0] + '/' + pathstr        # git工程的本地绝对路径
                atc_remotepath = atc_remote + '/' + namestr            # ATC git工程远程相对路径
                flyaudio_remotepath = flyaudio_remote + '/' + namestr            # flyaduio_git工程远程相对路径
                
                #判断本地目录是否为空,为空的话则新建一个文件,空目录会导致git提交失败
                if os.path.exists(localpath):     #目录存在上传文件
                    #print(localpath)
                    #if not os.listdir(localpath):       # 本地目录为空
                    #    cmd = 'touch %s/.gitignore' % (localpath)
                    #    print(localpath)
                    #    os.system(cmd)
                    ###cmd = 'cd %s && git remote add set-url autochips %s && git add . && git commit -m "init base 8827L project" &&git push -u autochips android-trunk-o1.ac8227L && cd %s' % (localpath, remotepath, sys.path[0])
                    ####cmd = 'cd %s && git remote set-url autochips %s &&git push -u autochips android-trunk-o1.ac8227L && cd %s' % (localpath, remotepath, sys.path[0])
                    #print(remotepath)
                    print('localpath="%s"' %localpath)
                    print('atc_remotepath="%s"' %atc_remotepath)
                    print('flyaudio_remotepath="%s"' %flyaudio_remotepath)
                    ###################如果是新下载的repo代码,推到flyaduio git服务器上,添加以下代码#############
                    ### 所有字库将原来上传代码时修改成的flyaudio的地址修改还OEM厂家ATC的gerrite的服务器地址
                    #cmd = 'cd %s && git remote set-url autochips %s && cd %s' % (localpath, atc_remotepath, sys.path[0])
                    #print(cmd)
                    #os.system(cmd)
                    ### 所有字库添加客户端flyaudio的远程服务器地址
                    #cmd = 'cd %s && git remote add origin %s && cd %s' % (localpath, flyaudio_remotepath, sys.path[0])
                    #print(cmd)
                    #os.system(cmd)
                    #####################结束 如果是新下载的repo代码,推到flyaduio git服务器上,添加以下代码#############
                    #####################如果是之前上传过flyaduio git服务器,那么不打开以上代码,直接执行以下步骤即可#####
                    ### 将所有子库中OEM厂家ATC的gerrite的服务器地址进行更新
                    cmd = 'cd %s && git fetch  autochips && cd %s' % (localpath, sys.path[0])
                    print(cmd)
                    os.system(cmd)
                    #################如果更新后代码目录为空执行以下步骤 ###################
                    if not os.listdir(localpath):       # 本地目录为空
                        cmd = 'touch %s/.gitignore' % (localpath)
                         print('dir="%s"' %atc_remotepath)
                        print(localpath)
                        os.system(cmd)
                    ### 将所有字库更新上传到flyaudio远程服务器的所有字库中
                    cmd = 'cd %s && git push -u origin android-trunk-o1.ac8227L && cd %s' % (localpath, sys.path[0]) 
                    print(cmd)
                    os.system(cmd)
                    ##Upload each git sub library to the remote server.
                    #cmd = 'cd %s &&git push -u autochips android-trunk-o1.ac8227L && cd %s' % (localpath, sys.path[0])                   
                    #print(cmd)
                    #os.system(cmd)
                else: #目录不存在不上传
                    print(localpath)
                   #cmd = 'cd %s && rm -rf .git && git init && git remote add origin %s && git add . -f && git commit -m "init " &&git push -u origin master && cd %s' % (localpath, remotepath, sys.path[0])
                    #print(cmd)
                    #os.system(cmd)

之后结合之前的default.xml文件运行脚本,如下:
zhaojiawei@zjr-7040:~/ATC_AndoridOGO_8827L-to-flaydio$ ./getnames_and_update_and_push-to-flyaduio.py default.xml
即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值