Unfinished p4 implementation
This commit is contained in:
		| @ -1,49 +0,0 @@ | ||||
| import subprocess | ||||
| from typing import Union, List | ||||
|  | ||||
| import toml | ||||
|  | ||||
| from semver.scm import SCM | ||||
| from semver.logger import logger | ||||
|  | ||||
|  | ||||
| class Perforce(SCM): | ||||
|     def __init__(self) -> None: | ||||
|         super().__init__() | ||||
|  | ||||
|     def get_tag_version(self) -> str: | ||||
|         """ | ||||
|         Get the latest tagged version from Perforce labels | ||||
|         :return: The latest tagged version | ||||
|         """ | ||||
|         config: dict = toml.load("./.bumpversion.cfg") | ||||
|  | ||||
|         tag_expression: str = config["bumpversion"]["tag_name"].replace( | ||||
|             "{new_version}", "[0-9]*.[0-9]*.[0-9]*" | ||||
|         ) | ||||
|  | ||||
|         logger.debug("Tag expression: " + str(tag_expression)) | ||||
|  | ||||
|         # Default version is `0.0.0` or what is found in | ||||
|         version = self.get_file_version(config) | ||||
|  | ||||
|         # If a version is found in Perforce labels, use that the latest labeled version | ||||
|         labeled_versions: Union[List[str], None] = None | ||||
|         try: | ||||
|             proc = subprocess.run( | ||||
|                 ["p4", "labels", "-e", tag_expression, "-m1"], | ||||
|                 capture_output=True, | ||||
|                 text=True, | ||||
|                 check=True, | ||||
|             ) | ||||
|             labeled_versions = proc.stdout.rstrip().split("\n") | ||||
|         except subprocess.CalledProcessError as e: | ||||
|             raise RuntimeError( | ||||
|                 f"Error getting latest labeled Perforce version: {str(e.stderr).rstrip()}" | ||||
|             ) | ||||
|  | ||||
|         if len(labeled_versions) > 0 and labeled_versions[-1] != "": | ||||
|             version = labeled_versions[-1] | ||||
|  | ||||
|         logger.debug("Label Version: " + str(version)) | ||||
|         return version | ||||
		Reference in New Issue
	
	Block a user