update_pkg_versions.py 993 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env python3
  2. import subprocess
  3. from os import chdir
  4. from subprocess import PIPE
  5. import tomlkit
  6. def update_package_version(filename, version):
  7. with open(filename) as f:
  8. content = f.read()
  9. p = tomlkit.parse(content)
  10. p["package"]["version"] = version
  11. with open(filename, "w") as f:
  12. f.write(tomlkit.dumps(p))
  13. def main():
  14. toplevel = subprocess.run(["git", "rev-parse", "--show-toplevel"],
  15. capture_output=True)
  16. toplevel = toplevel.stdout.decode().strip()
  17. chdir(toplevel)
  18. with open("Cargo.toml") as f:
  19. content = f.read()
  20. p = tomlkit.parse(content)
  21. version = p["package"]["version"]
  22. find_output = subprocess.run(
  23. ["find", ".", "-type", "f", "-name", "Cargo.toml"], stdout=PIPE)
  24. files = [i.strip() for i in find_output.stdout.decode().split("\n")][:-1]
  25. for filename in files:
  26. update_package_version(filename, version)
  27. if __name__ == "__main__":
  28. main()