import time def checkConfig(config): ''' 检查配置 ''' print('check config ...') if type(config) == dict: return checkChannelConfig(config) elif type(config) == list: for itemConfig in config: if not checkChannelConfig(itemConfig): return False return True def checkChannelConfig(config): if 'subChannel' not in config: print('subChannel not exists in config') return False # 默认值 if 'changeIcon' not in config: config['changeIcon'] = False if 'switchIcon' not in config: config['switchIcon'] = False if 'addLauncher' not in config: config['addLauncher'] = False if 'splitDex' not in config: config['splitDex'] = True if 'clearCache' not in config: config['clearCache'] = True if 'aapt2disable' not in config: config['aapt2disable'] = False if 'v2disable' not in config: config['v2disable'] = False if 'outName' not in config: config['outName'] = config['name'] return True def replaceArgs(config): ''' 替换占位符 ''' if type(config) == dict: replaceItemArgs(config) elif type(config) == list: # 遍历数组 for arg in config: replaceItemArgs(arg) def replaceItemArgs(config): ''' 替换占位符 ''' # 遍历字典 for arg in config: if type(config[arg]) == dict: replaceArgs(config[arg]) elif type(config[arg]) == str: replaceString(config, arg) def replaceString(config, arg): ''' 替换占位符 ''' content = config[arg] if '${DATE}' in content: content = content.replace('${DATE}', getDate()) config[arg] = content def getDate(): ''' 获取日期 ''' return time.strftime("%Y%m%d", time.localtime())