From 077eff405a4e932bd5134ce152050cc32e37f9b1 Mon Sep 17 00:00:00 2001 From: Michael Ferrari Date: Wed, 14 Aug 2024 22:19:00 +0200 Subject: [PATCH] Clean up version bump logic --- mkosi/__init__.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 3400a1818..f9b37dd64 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -4388,23 +4388,28 @@ def generate_key_cert_pair(args: Args) -> None: def bump_image_version() -> None: """Write current image version plus one to mkosi.version""" - version = Path("mkosi.version").read_text().strip() + + version_file = Path("mkosi.version") + if not version_file.exists(): + die(f"Cannot bump image version, '{version_file}' not found") + + if os.access(version_file, os.X_OK): + die(f"Cannot bump image version, '{version_file}' is executable") + + version = version_file.read_text().strip() v = version.split(".") try: - m = int(v[-1]) + v[-1] = str(int(v[-1]) + 1) except ValueError: - new_version = version + ".2" - logging.info( - "Last component of current version is not a decimal integer, " - f"appending '.2', bumping '{version}' → '{new_version}'." - ) - else: - new_version = ".".join(v[:-1] + [str(m + 1)]) - logging.info(f"Increasing last component of version by one, bumping '{version}' → '{new_version}'.") + v += ["2"] + logging.warning("Last component of current version is not a decimal integer, appending '.2'") + + new_version = ".".join(v) - Path("mkosi.version").write_text(f"{new_version}\n") - os.chown("mkosi.version", INVOKING_USER.uid, INVOKING_USER.gid) + logging.info(f"Bumping version: '{version}' → '{new_version}'") + version_file.write_text(f"{new_version}\n") + os.chown(version_file, INVOKING_USER.uid, INVOKING_USER.gid) def show_docs(args: Args, *, resources: Path) -> None: -- 2.47.2