Force sort after major

Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
This commit is contained in:
Trial97 2024-03-21 20:49:58 +02:00
parent b49bec7a5c
commit d996dc2a20
No known key found for this signature in database
GPG Key ID: 55EF5DA53DB36318

View File

@ -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)
# 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
def newest_timestamp(a: datetime.datetime | None, b: datetime.datetime):
if a is None or a < b:
return b
return a
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)