import sys import configparser def update_version(current_version: str, version_type: str) -> str: major, minor, patch = map(int, current_version.split(".")) if version_type == "patch": patch += 1 elif version_type == "minor": minor += 1 patch = 0 elif version_type == "major": major += 1 minor = 0 patch = 0 return f'"{major}.{minor}.{patch}"' def set_version(version_type: str) -> None: config = configparser.ConfigParser() config.read("Cargo.toml") current_version = config.get("package", "version").replace('"', "") new_version = update_version(current_version, version_type) config.set("package", "version", new_version) with open("Cargo.toml", "w") as config_file: config.write(config_file) return None if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python update_version.py [patch | minor | major]") sys.exit(1) set_version(sys.argv[1])