]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Clean up version bump logic 2954/head
authorMichael Ferrari <nekkodroid404@gmail.com>
Wed, 14 Aug 2024 20:19:00 +0000 (22:19 +0200)
committerMichael Ferrari <nekkodroid404@gmail.com>
Tue, 20 Aug 2024 09:42:39 +0000 (11:42 +0200)
mkosi/__init__.py

index 3400a1818f34341f775e90616b301b5576f6b228..f9b37dd64937ab0a3a9646fcf41d0786b8d9940e 100644 (file)
@@ -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: