mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-03-03 01:40:17 +00:00
67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
function getRawReleases(request) {
|
|
return request({ url: 'https://iterm2.com/downloads.html' }).then(function (
|
|
resp
|
|
) {
|
|
var links = resp.body
|
|
.split(/[<>]+/g)
|
|
.map(function (str) {
|
|
var m = str.match(/href="(https:\/\/iterm2\.com\/downloads\/.*\.zip)"/);
|
|
if (m && /iTerm2-[34]/.test(m[1])) {
|
|
return m[1];
|
|
}
|
|
})
|
|
.filter(Boolean);
|
|
return links;
|
|
});
|
|
}
|
|
|
|
function transformReleases(links) {
|
|
//console.log(JSON.stringify(links, null, 2));
|
|
//console.log(links.length);
|
|
|
|
return {
|
|
releases: links
|
|
.map(function (link) {
|
|
// strip 'go' prefix, standardize version
|
|
var channel = /\/stable\//.test(link) ? 'stable' : 'beta';
|
|
var parts = link
|
|
.replace(/.*\/iTerm2[-_]v?(\d_.*)\.zip/, '$1')
|
|
.split('_');
|
|
var version = parts.join('.').replace(/([_-])?beta/, '-beta');
|
|
|
|
return {
|
|
version: version,
|
|
// all go versions >= 1.0.0 are effectively LTS
|
|
lts: 'stable' === channel,
|
|
channel: channel,
|
|
date: '1970-01-01', // the world may never know
|
|
os: 'macos',
|
|
arch: 'amd64',
|
|
ext: '', // let normalize run the split/test/join
|
|
download: link
|
|
};
|
|
})
|
|
.filter(Boolean)
|
|
};
|
|
}
|
|
|
|
function getAllReleases(request) {
|
|
return getRawReleases(request)
|
|
.then(transformReleases)
|
|
.then(function (all) {
|
|
return all;
|
|
});
|
|
}
|
|
|
|
module.exports = getAllReleases;
|
|
|
|
if (module === require.main) {
|
|
getAllReleases(require('@root/request')).then(function (all) {
|
|
all = require('../_webi/normalize.js')(all);
|
|
all.releases = all.releases.slice(0, 10000);
|
|
console.info(JSON.stringify(all, null, 2));
|
|
});
|
|
}
|