builder.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. # -*- coding:utf-8 -*-
  2. from sabuild.config_parser import *
  3. from sabuild.formater import *
  4. import sys,os
  5. import json
  6. ProjectCFG = "sabuild/data/projects.cfg"
  7. Project_LASTRev = 0;
  8. ProjectUpdate = 0;
  9. def getReleaseName(projectDir):
  10. buildCfg = os.path.join(projectDir,"build.cfg")
  11. saParser = SAPaser(buildCfg)
  12. try:
  13. releaseName = saParser.configParser.get("app","release")
  14. except Exception:
  15. releaseName = "assembleRelease"
  16. return releaseName
  17. def getAPKSection(projectDir):
  18. buildCfg = os.path.join(projectDir,"build.cfg")
  19. saParser = SAPaser(buildCfg)
  20. try:
  21. apkSection = saParser.configParser.sections()
  22. except Exception:
  23. apkSection = "error"
  24. return apkSection
  25. def checkProjectRev(projectDir, lastRevLine, lastDateLine):
  26. global Project_LASTRev,ProjectUpdate
  27. lastRev = int(parseSVNLine(lastRevLine))
  28. lastDate = parseSVNLine(lastDateLine)
  29. print("checkProjectRev, params:",projectDir, lastRev, lastDate)
  30. if projectDir.endswith("/"):
  31. projectDir = os.path.dirname(projectDir)
  32. projectName = os.path.basename(projectDir)
  33. print("checkProjectRev,projectName:",projectName)
  34. fileUtil = FileUtil()
  35. jsonStr = fileUtil.readStr(ProjectCFG)
  36. strDict = json.loads(jsonStr,encoding="utf8")
  37. # print("checkProjectRev,strDict:",strDict)
  38. projectDict = strDict["allProjectDict"]
  39. if projectName in projectDict:
  40. Project_LASTRev = projectDict[projectName]["svn_lastChangedRev"]
  41. print("checkProjectRev,Project_LASTRev",Project_LASTRev,"::lastRev:",lastRev)
  42. if lastRev > Project_LASTRev:
  43. ProjectUpdate = 1
  44. print("checkProjectRev,ProjectUpdate",ProjectUpdate)
  45. def updateProjectRev(projectDir, lastRevLine, lastDateLine):
  46. lastRev = int(parseSVNLine(lastRevLine))
  47. lastDate = parseSVNLine(lastDateLine)
  48. print("updateProjectRev, params:",projectDir, lastRev, lastDate)
  49. if projectDir.endswith("/"):
  50. projectDir = os.path.dirname(projectDir)
  51. projectName = os.path.basename(projectDir)
  52. print("updateProjectRev,projectName:",projectName)
  53. fileUtil = FileUtil()
  54. jsonStr = fileUtil.readStr(ProjectCFG)
  55. strDict = json.loads(jsonStr,encoding="utf8")
  56. # print("updateProjectRev,strDict:",strDict)
  57. projectDict = strDict["allProjectDict"]
  58. if projectName in projectDict:
  59. projectDict[projectName]["svn_lastChangedRev"] = lastRev
  60. projectDict[projectName]["svn_lastChangedDate"] = lastDate
  61. else:
  62. pDict = releaseInfo
  63. pDict["projectName"]=projectName
  64. pDict["svn_lastChangedRev"]=lastRev
  65. pDict["svn_lastChangedDate"]=lastDate
  66. projectDict[projectName]=pDict
  67. fileUtil.reWriteJson(ProjectCFG,strDict)
  68. def isAppUpgrade():
  69. return ProjectUpdate
  70. if __name__ == "__main__":
  71. pass
  72. # projectDir = "../cacheAndroidSrc/AudioLink"
  73. # print("release:",getReleaseName(projectDir));