Select Git revision
-
Gabriel-Ladzaretti authored
* refactor(tools/distro-info): for later use in ubuntu and debian versioning distro-info refactor * refactor(tools/distro-info): for later use in ubuntu and debian versioning styling * refactor(tools/distro-info): for later use in ubuntu and debian versioning distro-info refactor * refactor(tools/distro-info): for later use in ubuntu and debian versioning styling * refactor(tools/distro-info): for later use in ubuntu and debian versioning use https://debian.pages.debian.net/distro-info-data/ubuntu.csv as distro info data * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes and migrated from mjs to ts * refactor(tools/distro-info): for later use in ubuntu and debian versioning added a crude way to prevent writing corrupted data * refactor(tools/distro-info): for later use in ubuntu and debian versioning lint fixes * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes and migrated from mjs to ts * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes * refactor(tools/distro-info): for later use in ubuntu and debian versioning dynamically check if stable/released. 22.04 release for example * refactor(tools/distro-info): for later use in ubuntu and debian versioning fixed JSON order * refactor(tools/distro-info): for later use in ubuntu and debian versioning removed ts.ignore * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes Co-authored-by:
Michael Kriese <michael.kriese@visualon.de>
Gabriel-Ladzaretti authored* refactor(tools/distro-info): for later use in ubuntu and debian versioning distro-info refactor * refactor(tools/distro-info): for later use in ubuntu and debian versioning styling * refactor(tools/distro-info): for later use in ubuntu and debian versioning distro-info refactor * refactor(tools/distro-info): for later use in ubuntu and debian versioning styling * refactor(tools/distro-info): for later use in ubuntu and debian versioning use https://debian.pages.debian.net/distro-info-data/ubuntu.csv as distro info data * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes and migrated from mjs to ts * refactor(tools/distro-info): for later use in ubuntu and debian versioning added a crude way to prevent writing corrupted data * refactor(tools/distro-info): for later use in ubuntu and debian versioning lint fixes * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes and migrated from mjs to ts * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes * refactor(tools/distro-info): for later use in ubuntu and debian versioning dynamically check if stable/released. 22.04 release for example * refactor(tools/distro-info): for later use in ubuntu and debian versioning fixed JSON order * refactor(tools/distro-info): for later use in ubuntu and debian versioning removed ts.ignore * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes * refactor(tools/distro-info): for later use in ubuntu and debian versioning cr changes Co-authored-by:
Michael Kriese <michael.kriese@visualon.de>
distro.ts 1.63 KiB
import dataFiles, { DataFile } from '../../data-files.generated';
interface DistroSchedule {
codename: string;
series: string;
created: string;
release: string;
eol: string;
eol_server?: string;
eol_esm?: string;
eol_lts?: string;
eol_elts?: string;
}
type DistroDataFile = 'data/ubuntu-distro-info.json';
export type DistroInfoRecord = Record<string, DistroSchedule>;
export type DistroInfoRecordWithVersion = { version: string } & DistroSchedule;
export class DistroInfo {
private readonly _codenameToVersion = new Map<
string,
DistroInfoRecordWithVersion
>();
private readonly _distroInfo: DistroInfoRecord;
constructor(distroJsonKey: DistroDataFile) {
this._distroInfo = JSON.parse(
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
dataFiles.get(distroJsonKey as DataFile)!.replace(/v([\d.]+)\b/gm, '$1')
);
for (const version of Object.keys(this._distroInfo)) {
const schedule = this._distroInfo[version];
this._codenameToVersion.set(schedule.series, { version, ...schedule });
}
}
public isCodename(input: string): boolean {
return this._codenameToVersion.has(input);
}
public getVersionByCodename(input: string): string {
const schedule = this._codenameToVersion.get(input);
if (schedule) {
return schedule.version;
}
return input;
}
public getCodenameByVersion(input: string): string {
const di = this._distroInfo[input];
if (di) {
return di.series;
}
// istanbul ignore next
return input;
}
public getSchedule(input: string): DistroSchedule {
return this._distroInfo[input];
}
}