123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- #!/usr/bin/env python3
- import os
- import shutil
- import subprocess
- import string
- import json
- import argparse
- import sys
- # 主要功能:
- # 1、修改VersionConfig.js, AllSDKConfig.js
- # VersionConfig.js: 修改APP_VERSION, RES_VERSION, CONF_VERSION, OPEN_DEBUG, RELEASE_SERVER_NAME
- # AllSDKConfig.js: 仅保留空999渠道配置
- # 2、根据是否调试,确定是否删除debug相关目录
- # 3、删除非android平台的代码
- # ex: python3 android-release.py --debug --appver 3.13.1 --resver 313001001 --confver 50 --hxCode 0 --servername TEST_FORMAL_SERVER
- # ex: python3 android-release.py --appver 3.13.1 --resver 313001 --confver 50 --hxCode 0 --servername FORMAL_SERVER
- parser = argparse.ArgumentParser()
- parser.add_argument('--debug', dest='debug', action='store_true', help = 'open debug')
- parser.add_argument('--appver', dest='appver', default=None, help = 'application version')
- parser.add_argument('--resver', dest='resver', default=None, help = 'resources version')
- parser.add_argument('--confver', dest='confver', default=None, help = 'config version')
- parser.add_argument('--hxCode', dest='hxCode', default=None, help = 'hx code')
- parser.add_argument('--servername', dest='servername', default=None, help = 'release server name')
- args = parser.parse_args()
- # 判断GIT_ROOT是否存在
- GIT_ROOT = os.environ.get('GIT_ROOT')
- if not GIT_ROOT:
- print('环境变量中未找到 GIT_ROOT')
- exit()
- # 目录
- project_root = os.path.join(GIT_ROOT, 'mj-creator')
- # 处理环境
- def handleEvn ():
- # 封包目录
- if not os.path.exists(project_root):
- print('封包目录不存在')
- exit()
- def handleVersionConfig():
- debug = 'false'
- if args.debug:
- debug = 'true'
- # 参数
- values = {
- 'appVersion' : args.appver,
- 'resVersion' : args.resver,
- 'hxCode' : args.hxCode,
- 'openDebug' : debug,
- 'releaseServerName' : args.servername,
- }
- # 模版
- t = string.Template("""
- module.exports = {
- init (ns) {
- ns.APP_VERSION = '${appVersion}';
- ns.RES_VERSION = ${resVersion};
- ns.HX_CODE = ${hxCode};
- ns.OPEN_DEBUG = ${openDebug};
- ns.RELEASE_SERVER_NAME = '${releaseServerName}';
- }
- };
- """)
- # 写文件
- path = os.path.join(project_root, 'assets/script/VersionConfig.js')
- with open(path, 'wt') as f:
- f.write(t.substitute(values))
- def handleSDKConfig():
- s = """module.exports = {
- ch999: {
- 'channel': '999'
- }
- };"""
- # 写文件
- path = os.path.join(project_root, 'assets/script/AllSDKConfig.js')
- with open(path, 'wt') as f:
- f.write(s)
- def delModules():
- isdebug = args.debug
- if not isdebug:
- # 删除debug
- src_dir = os.path.join(project_root, 'assets/script/debug')
- src_meta = os.path.join(project_root, 'assets/script/debug.meta')
- if os.path.exists(src_dir):
- shutil.rmtree(src_dir)
- if os.path.exists(src_meta):
- os.remove(src_meta)
- res_dir = os.path.join(project_root, 'assets/resources/debug')
- res_meta = os.path.join(project_root, 'assets/resources/debug.meta')
- if os.path.exists(res_dir):
- shutil.rmtree(res_dir)
- if os.path.exists(res_meta):
- os.remove(res_meta)
- # 删除非android的模块
- platform_root = os.path.join(project_root, 'assets/script/platform')
- for dirName in os.listdir(platform_root):
- path = os.path.join(platform_root, dirName)
- if os.path.isdir(path):
- if dirName != 'android':
- shutil.rmtree(path)
- os.remove(path + '.meta')
- def main():
- handleEvn()
- # 根据配置表生成version op sdk
- handleVersionConfig()
- handleSDKConfig()
- # 删除多余文件
- delModules()
- if __name__ == "__main__":
- main()
|