mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-05-16 13:46:42 +00:00
62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
var github = require('../_common/github.js');
|
|
var owner = 'oven-sh';
|
|
var repo = 'bun';
|
|
|
|
module.exports = function () {
|
|
return github(null, owner, repo).then(function (all) {
|
|
// collect baseline asset names so we can prefer them over non-baseline
|
|
// (baseline builds avoid SIGILL on older/container CPUs)
|
|
let baselineNames = new Set();
|
|
all.releases.forEach(function (r) {
|
|
if (r.name.includes('-baseline')) {
|
|
baselineNames.add(r.name.replace('-baseline', ''));
|
|
}
|
|
});
|
|
|
|
all.releases = all.releases
|
|
.filter(function (r) {
|
|
if (r.name.includes('-profile')) {
|
|
return false;
|
|
}
|
|
|
|
if (r.name.endsWith('.txt') || r.name.endsWith('.asc')) {
|
|
return false;
|
|
}
|
|
|
|
// drop the non-baseline asset when a baseline twin exists
|
|
if (!r.name.includes('-baseline') && baselineNames.has(r.name)) {
|
|
return false;
|
|
}
|
|
|
|
let isMusl = r.name.includes('-musl');
|
|
if (isMusl) {
|
|
r._musl = true;
|
|
r.libc = 'musl';
|
|
} else if (r.name.includes('-linux-')) {
|
|
r.libc = 'gnu';
|
|
}
|
|
|
|
return true;
|
|
})
|
|
.map(function (r) {
|
|
// bun-linux-x64-baseline.zip => bun-linux-x64
|
|
r.name = r.name.replace('-baseline', '').replace(/\.zip$/, '');
|
|
// bun-v0.5.1 => v0.5.1
|
|
r.version = r.version.replace(/bun-/g, '');
|
|
return r;
|
|
});
|
|
return all;
|
|
});
|
|
};
|
|
|
|
if (module === require.main) {
|
|
module.exports().then(function (all) {
|
|
all = require('../_webi/normalize.js')(all);
|
|
// just select the first 5 for demonstration
|
|
all.releases = all.releases.slice(0, 5);
|
|
console.info(JSON.stringify(all, null, 2));
|
|
});
|
|
}
|