config_utils_record.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import time
  2. def checkConfig(config):
  3. '''
  4. 检查配置
  5. '''
  6. print('check config ...')
  7. if type(config) == dict:
  8. print('check config dict ...')
  9. return checkChannelConfig(config)
  10. elif type(config) == list:
  11. print('check config list ...')
  12. for itemConfig in config:
  13. if not checkChannelConfig(itemConfig):
  14. return False
  15. return True
  16. def checkChannelConfig(config):
  17. if 'name' not in config or 'packageName' not in config:
  18. print('name or packageName not exists in config')
  19. return False
  20. if 'subChannel' not in config:
  21. print('subChannel not exists in config')
  22. return False
  23. # 默认值
  24. if 'changeIcon' not in config:
  25. config['changeIcon'] = False
  26. if 'switchIcon' not in config:
  27. config['switchIcon'] = False
  28. if 'addLauncher' not in config:
  29. config['addLauncher'] = False
  30. if 'splitDex' not in config:
  31. config['splitDex'] = True
  32. if 'clearCache' not in config:
  33. config['clearCache'] = True
  34. if 'aapt2disable' not in config:
  35. config['aapt2disable'] = False
  36. if 'v2disable' not in config:
  37. config['v2disable'] = False
  38. if 'screenOrientation' not in config:
  39. config['screenOrientation'] = 'landscape'
  40. if 'outName' not in config:
  41. config['outName'] = config['name']
  42. return True
  43. def replaceArgs(config):
  44. '''
  45. 替换占位符
  46. '''
  47. if type(config) == dict:
  48. replaceItemArgs(config)
  49. elif type(config) == list:
  50. # 遍历数组
  51. for arg in config:
  52. replaceItemArgs(arg)
  53. def replaceItemArgs(config):
  54. '''
  55. 替换占位符
  56. '''
  57. # 遍历字典
  58. for arg in config:
  59. if type(config[arg]) == dict:
  60. replaceArgs(config[arg])
  61. elif type(config[arg]) == str:
  62. replaceString(config, arg)
  63. def replaceString(config, arg):
  64. '''
  65. 替换占位符
  66. '''
  67. content = config[arg]
  68. if '${DATE}' in content:
  69. content = content.replace('${DATE}', getDate())
  70. config[arg] = content
  71. def getDate():
  72. '''
  73. 获取日期
  74. '''
  75. return time.strftime("%Y%m%d", time.localtime())