mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-05-06 00:36:35 +00:00
fix: better (lazier) 'stable' vs 'beta' detection
This commit is contained in:
@@ -61,20 +61,32 @@ async function getAllReleases(
|
||||
}
|
||||
|
||||
function transformReleases(release) {
|
||||
release['assets'].forEach(function (asset) {
|
||||
for (let asset of release['assets']) {
|
||||
let name = asset['name'];
|
||||
let date = release['published_at']?.replace(/T.*/, '');
|
||||
let download = asset['browser_download_url'];
|
||||
|
||||
// TODO tags aren't always semver / sensical
|
||||
let version = release['tag_name'];
|
||||
let channel;
|
||||
if (release['prerelease']) {
|
||||
// -rcX, -preview, -beta, etc will be checked in _webi/normalize.js
|
||||
channel = 'beta';
|
||||
}
|
||||
let lts = /(\b|_)(lts)(\b|_)/.test(release['tag_name']);
|
||||
|
||||
all.releases.push({
|
||||
name: name,
|
||||
version: release['tag_name'], // TODO tags aren't always semver / sensical
|
||||
lts: /(\b|_)(lts)(\b|_)/.test(release['tag_name']),
|
||||
channel: !release['prerelease'] ? 'stable' : 'beta',
|
||||
date: (release['published_at'] || '').replace(/T.*/, ''),
|
||||
version: version,
|
||||
lts: lts,
|
||||
channel: channel,
|
||||
date: date,
|
||||
os: '', // will be guessed by download filename
|
||||
arch: '', // will be guessed by download filename
|
||||
ext: '', // will be normalized
|
||||
download: asset['browser_download_url'],
|
||||
download: download,
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return all;
|
||||
|
||||
@@ -72,7 +72,7 @@ function normalize(all) {
|
||||
formats: {},
|
||||
};
|
||||
|
||||
all.releases.forEach(function (rel) {
|
||||
for (let rel of all.releases) {
|
||||
/* jshint maxcomplexity:25 */
|
||||
rel.version = rel.version.replace(/^v/i, '');
|
||||
if (!rel.name) {
|
||||
@@ -85,7 +85,7 @@ function normalize(all) {
|
||||
}) || 'unknown';
|
||||
}
|
||||
// Hacky-doo for musl
|
||||
// TODO some sort of glibc vs musl tag?
|
||||
// TODO 'libc' some sort of glibc vs musl tag?
|
||||
if (!rel._musl_native) {
|
||||
if (!rel._musl) {
|
||||
if (/(\b|\.|_|-)(musl)(\b|\.|_|-)/.test(rel.download)) {
|
||||
@@ -139,10 +139,28 @@ function normalize(all) {
|
||||
}
|
||||
supported.formats[tarExt || rel.ext] = true;
|
||||
|
||||
if (!rel.channel) {
|
||||
// basically like this: (+.-_)(beta|rc)(0-9)(+.-_)
|
||||
// matches:
|
||||
// - v1.0-beta
|
||||
// - v1.0-beta1.1
|
||||
// - v1.0-beta-11
|
||||
// won't match:
|
||||
// - v1.0beta
|
||||
// - v1.0-beta1b
|
||||
let isBetaRe = /(\b|_)(preview|rc|beta|alpha)(\d+)(\b|_)/;
|
||||
let isBeta = isBetaRe.test(rel.name);
|
||||
if (isBeta) {
|
||||
rel.channel = 'beta';
|
||||
} else {
|
||||
rel.channel = 'stable';
|
||||
}
|
||||
}
|
||||
|
||||
if (all.download) {
|
||||
rel.download = all.download.replace(/{{ download }}/, rel.download);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
all.oses = Object.keys(supported.oses).filter(function (name) {
|
||||
return maps.oses[name];
|
||||
|
||||
Reference in New Issue
Block a user