Python之自动化修改软件包版本号&日期

来源:互联网 发布:java定义二维数组 编辑:程序博客网 时间:2024/06/06 18:41

## 应用场景

      项目组打包时需要修改若干目录下的若干配置文件,其中每个文件修改的场所也挺多,所以这种修改带来的人力成本大,所以建议采用脚本来修改,大大提高效率。


## 修正脚本(modify_version.py)

import os,sys,reg_update_dir = "update"g_new_version = "20"g_new_date = "20151124"#####################################################################################g_server_all_flag = ["SERVER", "SERVER_SYSTEM", "SERVER_HW", "SERVER_FIRMWARE", "SERVER_OS", "SERVER_APP", "SERVER_CMT", "SERVER_epg"] # Allg_server_sys_flag = ["SERVER", "SERVER_SYSTEM", "SERVER_HW", "SERVER_FIRMWARE", "SERVER_OS"] #Systemg_server_app_flag = ["SERVER", "SERVER_APP", "SERVER_CMT", "SERVER_epg"] #EPG && CMT_Webg_server_cmt_flag = ["SERVER", "SERVER_APP", "SERVER_CMT"] # CMT_Webg_server_epg_flag = ["SERVER", "SERVER_APP", "SERVER_epg"] # EPGg_cmt_all_flag = ["CMT", "CMT_HW", "CMT_SYSTEM", "CMT_FIRMWARE","CMT_OS","CMT_APP","SERVER_CMA"] # Allg_cmt_sys_flag = ["CMT", "CMT_HW", "CMT_SYSTEM", "CMT_FIRMWARE","CMT_OS"] # Systemg_cmt_app_flag = ["CMT", "CMT_APP","SERVER_CMA"] #App                 g_adb_all_flag = ["ADB","ADB_SYSTEM","ADB_HW","ADB_FIRMWARE","ADB_OS","ADB_APP","ADB_CMA","ADB_CONFIG"] #Allg_adb_sys_flag = ["ADB","ADB_SYSTEM","ADB_HW","ADB_FIRMWARE","ADB_OS"] # Systemg_adb_app_flag = ["ADB","ADB_APP","ADB_CMA","ADB_CONFIG"] # Appg_Array = ["WIFI"]##################################  Mode ####################################################def usage():    print "--------------------------------------------------------------------------"    print "Server: 0:No   1:All    2:System    3:Epg & CMT_web     4:EPG   5:CMT_web"    print "CMT   : 0:No   1:All    2:System    3:App"    print "ADB   : 0:No   1:All    2:System    3:App"    print "--------------------------------------------------------------------------"    print "Select Modify Mode for (Server | CMT | ADB) like 500"    print "\n"def modifyArray():    global g_Array    mode = sys.argv[1]    if len(mode) < 3:        print "at least 3 bit"    else:        server = mode[0]        cmt = mode[1]        adb = mode[2]        if server == "1":   g_Array = g_Array + g_server_all_flag        if server == "2":   g_Array = g_Array + g_server_sys_flag        if server == "3":   g_Array = g_Array + g_server_app_flag        if server == "4":   g_Array = g_Array + g_server_epg_flag        if server == "5":   g_Array = g_Array + g_server_cmt_flag                if cmt == "1":   g_Array = g_Array + g_cmt_all_flag        if cmt == "2":   g_Array = g_Array + g_cmt_sys_flag        if cmt == "3":   g_Array = g_Array + g_cmt_app_flag                if adb == "1":   g_Array = g_Array + g_adb_all_flag        if adb == "2":   g_Array = g_Array + g_adb_sys_flag        if adb == "3":   g_Array = g_Array + g_adb_app_flag    ######################################################################################def readFile(fname):    with open(fname, 'r') as f:        return f.read()def writeFile(fname,content):    with open(fname, 'w') as f:        return f.write(content)######################################################################################def calcTarget(flag,content):    ret = re.findall(flag,content)    if ret:        src = ret[0][0]        ver = ret[0][1]        date = ret[0][2]        tg = src.replace(".%s-" % (ver),".%s-" % (g_new_version))        tg = tg.replace(date,g_new_date)        return tg    else:        return ""######################################################################################def system_version_info():global g_Arrayfname = os.path.join(os.getcwd(),"update/system_version_info.xml")content = readFile(fname)for key in g_Array:flag = "(%s_V.\d+.\d+.(\w+)-[S|J]*-*(\d+))" % (key)target = calcTarget(flag,content)if target == "":continuecontent = re.sub(flag,target,content)writeFile(fname,content)######################################################################################def system_update():global g_Arrayfname = os.path.join(os.getcwd(),"update/system_update.xml")content = readFile(fname)#modify the timestampfor key in g_Array:flag = "(%s_V.\d+.\d+.(\w+)-[S|J]*-*(\d+))" % (key)target = calcTarget(flag,content)if target == "":continuecontent = re.sub(flag,target,content)writeFile(fname,content)######################################################################################def server_web_update():global g_Arrayfname = os.path.join(os.getcwd(),"update/server/800-210-201/web_update.xml")content = readFile(fname)for key in g_Array:flag = "(%s_V.\d+.\d+.(\w+)-[S|J]*-*(\d+))" % (key)target = calcTarget(flag,content)if target == "":continuecontent = re.sub(flag,target,content)writeFile(fname,content)######################################################################################def server_system_version_info():global g_Arrayfname = os.path.join(os.getcwd(),"update/server/800-210-201/system_version_info.xml")content = readFile(fname)for key in g_Array:flag = "(%s_V.\d+.\d+.(\w+)-[S|J]*-*(\d+))" % (key)target = calcTarget(flag,content)if target == "":continuecontent = re.sub(flag,target,content)writeFile(fname,content)######################################################################################def cmt_system_version_info():global g_Arrayfname = os.path.join(os.getcwd(),"update/cmt/800-250-112/system_version_info.xml")content = readFile(fname)for key in g_Array:flag = "(%s_V.\d+.\d+.(\w+)-[S|J]*-*(\d+))" % (key)target = calcTarget(flag,content)if target == "":continuecontent = re.sub(flag,target,content)writeFile(fname,content)######################################################################################def adb_system_version_info():print "..."######################################################################################def main():# top levelsystem_version_info()system_update()# cd serverserver_web_update()server_system_version_info()# cd cmtcmt_system_version_info()# cd adbadb_system_version_info()######################################################################################if len(sys.argv) < 2:    usage()else:    modifyArray()    main()


## 使用说明

modify_version.py 500

#参数500表示只修改CMT_Web而已

0 0
原创粉丝点击