feat(cdn): derive Ubuntu slot from codename

This commit is contained in:
Patrick Schratz 2026-08-30 12:24:17 +00:00
commit 83393491ef
No known key found for this signature in database
GPG key ID: 62050D5BC68AB6DC

View file

@ -58,6 +58,7 @@ const MACOS_BIN_REGEX =
const RHEL_REGEX = /(almalinux|rocky)[^\d]*(\d+)/i;
const UBUNTU_REGEX = /Ubuntu ([\d.]+)/i;
const UBUNTU_CODENAME_REGEX = /Ubuntu [\d.]+;\s*codename=([a-z][a-z0-9-]*)/i;
const UBUNTU_CODENAMES: Record<string, string> = {
'26.04': 'resolute',
'24.04': 'noble',
@ -137,6 +138,11 @@ function parseSlot(userAgent: string): string | null {
const ubuntu = userAgent.match(UBUNTU_REGEX);
if (ubuntu) {
const codenameMatch = userAgent.match(UBUNTU_CODENAME_REGEX);
if (codenameMatch) {
return `${arch}/${codenameMatch[1].toLowerCase()}`;
}
const codename = UBUNTU_CODENAMES[ubuntu[1]];
if (codename) {
return `${arch}/${codename}`;