config_utils_shanshen.py 1.9 KB

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