build.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. '''
  2. @author: olivier.massot, 2019
  3. '''
  4. import configparser
  5. from core import constants
  6. from zipfile import ZipFile
  7. from path import Path
  8. build_dir = constants.MAIN / "build"
  9. version = constants.VERSION
  10. name = "MnCheck_v{}.zip".format(version.replace(".", "-"))
  11. config = configparser.ConfigParser()
  12. config["general"] = {"name" : "MnCheck",
  13. "qgisminimumversion" : "3.4",
  14. "description" : "Contrôle des données FTTH format MN",
  15. "version" : version,
  16. "author" : "Manche Numérique 2019",
  17. "email" : constants.CONTACT,
  18. "about" : "Auto-contrôle des livrables FTTH aux formats Manche Numérique",
  19. "tracker" : "",
  20. "repository" : "",
  21. "tags" : "python",
  22. "homepage" : "http://www.manchenumerique.fr/",
  23. "category" : "Plugins",
  24. "icon" : "icon.png",
  25. "experimental" : "False",
  26. "deprecated" : "False"}
  27. with open(constants.MAIN / 'metadata.txt', 'w+') as mdf:
  28. mdf.write("# This file was generated by the build.py script, do not modify it direcly\n".upper())
  29. config.write(mdf)
  30. with ZipFile(build_dir / name, 'w') as zip_:
  31. def _zip_write(p):
  32. if p.ext == ".pyc":
  33. return
  34. zip_.write(p, "MnCheck\{}".format(p.relpath(constants.MAIN)))
  35. for f in Path(constants.MAIN / "ext").walkfiles():
  36. _zip_write(f)
  37. for f in Path(constants.MAIN / "core").walkfiles():
  38. _zip_write(f)
  39. for f in Path(constants.MAIN / "schemas").walkfiles():
  40. _zip_write(f)
  41. for f in Path(constants.MAIN / "ui").walkfiles():
  42. _zip_write(f)
  43. _zip_write(constants.MAIN / "__init__.py")
  44. _zip_write(constants.MAIN / "main.py")
  45. _zip_write(constants.MAIN / "README.md")
  46. _zip_write(constants.MAIN / "icon.png")
  47. _zip_write(constants.MAIN / "LICENSE")
  48. _zip_write(constants.MAIN / "metadata.txt")
  49. Path(build_dir / "metadata.txt").remove_p()