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
- Python之自动化修改软件包版本号&日期
- python实现修改redmne版本号
- gulp之自动化压缩合并加版本号
- Ubuntu 查看软件包版本号
- gulp自动化添加版本号并修改为参数格式
- Python笔记之模块版本号
- 修改ubuntu默认的Python版本号
- ubuntu中修改默认Python版本号
- 修改ubuntu12.04默认的Python版本号
- ubuntu中修改默认Python版本号
- python自动化之迭代器
- nginx配置安装之-修改nginx版本号
- iOS 之版本号 Version / Build 分析与脚本自动化
- 修改版本号
- 修改版本号
- Python实战之自动化评论
- python自动化之路-day1
- python自动化之路-day2
- JVM调优
- 51nod 1038 矩阵取数问题 (DP)
- hibernate学习总结之子类关系映射
- 数据结构之树_Tree
- HDU 2586 最小公共祖先
- Python之自动化修改软件包版本号&日期
- Balanced Binary Tree
- rabbitMq:DIAGNOSTICS
- CentOS6.5安装MySQL5.7.9
- JVM内存管理
- Kibana User Guide [4.2] » Using Kibana in a Production Environment
- Android中的DrawRect()参数解析
- 自定义数据排序(Comparable,Comparator)JAVA126
- Struts2的简单入门