release.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. """
  2. This file provides zest.releaser entrypoints using when releasing new
  3. qrcode versions.
  4. """
  5. import os
  6. import re
  7. import datetime
  8. def update_manpage(data):
  9. """
  10. Update the version in the manpage document.
  11. """
  12. if data["name"] != "qrcode":
  13. return
  14. base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  15. filename = os.path.join(base_dir, "doc", "qr.1")
  16. with open(filename) as f:
  17. lines = f.readlines()
  18. changed = False
  19. for i, line in enumerate(lines):
  20. if not line.startswith(".TH "):
  21. continue
  22. parts = re.split(r'"([^"]*)"', line)
  23. if len(parts) < 5:
  24. continue
  25. changed = parts[3] != data["new_version"]
  26. if changed:
  27. # Update version
  28. parts[3] = data["new_version"]
  29. # Update date
  30. parts[1] = datetime.datetime.now().strftime("%-d %b %Y")
  31. lines[i] = '"'.join(parts)
  32. break
  33. if changed:
  34. with open(filename, "w") as f:
  35. for line in lines:
  36. f.write(line)