summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--generateJava.py31
1 files changed, 21 insertions, 10 deletions
diff --git a/generateJava.py b/generateJava.py
index 1eabda2098..f584692295 100644
--- a/generateJava.py
+++ b/generateJava.py
@@ -270,24 +270,35 @@ def pkg_type_priority(pkg_type: JavaPackageType) -> int:
def writeJavas(javas: dict[int, list[JavaRuntimeMeta]], uid: str):
+ def oldest_timestamp(a: datetime.datetime | None, b: datetime.datetime):
+ if a is None or a > b:
+ return b
+ return a
+
ensure_component_dir(uid)
- for major, runtimes in javas.items():
- def newest_timestamp(a: datetime.datetime | None, b: datetime.datetime):
- if a is None or a < b:
- return b
- return a
+ # small hack to sort the versions after major
+ javas = dict(sorted(javas.items(), key=lambda item: item[0]))
+ timestamps: dict[int, datetime.datetime | None] = {}
+ prevDate: datetime.datetime | None = None
+ for major, runtimes in javas.items():
+ releaseTime = reduce(
+ oldest_timestamp,
+ (runtime.release_time for runtime in runtimes),
+ None,
+ )
+ if prevDate is not None and releaseTime < prevDate:
+ releaseTime = prevDate + datetime.timedelta(seconds=1)
+ prevDate = releaseTime
+ timestamps[major] = releaseTime
+ for major, runtimes in javas.items():
version_file = os.path.join(LAUNCHER_DIR, uid, f"java{major}.json")
java_version = JavaRuntimeVersion(
name=f"Java {major}",
uid=uid,
version=f"java{major}",
- releaseTime=reduce(
- newest_timestamp,
- (runtime.release_time for runtime in runtimes),
- None,
- ),
+ releaseTime=timestamps.get(major),
runtimes=runtimes,
)
java_version.write(version_file)