from version_repository import VersionRepository from release_type import ReleaseType from git_repository import GitRepository class InitReleaseService(): def __init__(self, file): self.file = file self.version_repo = None def __calculate_release_type(self, commit_string = None): if commit_string is None: return GitRepository().get_release_type_from_latest_commit() else: return GitRepository.create_from_commit_string(commit_string).get_release_type_from_latest_commit() def get_version(self, release_type): self.version_repo = VersionRepository(self.file) return self.version_repo.get_version(release_type) def create_release_version(self, commit_string = None): release_type = self.__calculate_release_type(commit_string) version = self.get_version(release_type).create_release_version() self.version_repo.write_file(version.get_version_string()) def create_bump_version(self): if self.version_repo == None: raise Exception('VersionRepo was not created. Did you run create_release_version()?') version = self.get_version(ReleaseType.BUMP).create_bump_version() self.version_repo.write_file(version.get_version_string()) class PrepareReleaseService(): pass class TagAndPushReleaseService(): pass