#!/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()