3 function getRawReleases(request) {
4 return request({ url: 'https://iterm2.com/downloads.html' }).then(function (
10 var m = str.match(/href="(https:\/\/iterm2\.com\/downloads\/.*\.zip)"/);
11 if (m && /iTerm2-[34]/.test(m[1])) {
20 function transformReleases(links) {
21 //console.log(JSON.stringify(links, null, 2));
22 //console.log(links.length);
26 .map(function (link) {
27 // strip 'go' prefix, standardize version
28 var channel = /\/stable\//.test(link) ? 'stable' : 'beta';
30 .replace(/.*\/iTerm2[-_]v?(\d_.*)\.zip/, '$1')
32 var version = parts.join('.').replace(/([_-])?beta/, '-beta');
36 // all go versions >= 1.0.0 are effectively LTS
37 lts: 'stable' === channel,
39 date: '1970-01-01', // the world may never know
42 ext: '', // let normalize run the split/test/join
50 function getAllReleases(request) {
51 return getRawReleases(request)
52 .then(transformReleases)
53 .then(function (all) {
58 module.exports = getAllReleases;
60 if (module === require.main) {
61 getAllReleases(require('@root/request')).then(function (all) {
62 all = require('../_webi/normalize.js')(all);
63 all.releases = all.releases.slice(0, 10000);
64 console.info(JSON.stringify(all, null, 2));