From bab564bdeb7578dcbb1671e1a31ec8ea47c37c92 Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Sun, 15 Jan 2023 08:34:08 +0000 Subject: [PATCH] fix(k9s): add release update timeout --- _webi/releases.js | 19 ++++---- _webi/serve-installer.js | 72 ++++++++++++++-------------- _webi/transform-releases.js | 96 ++++++++++++++++++++++--------------- 3 files changed, 104 insertions(+), 83 deletions(-) diff --git a/_webi/releases.js b/_webi/releases.js index 21c1a0f..ecbc959 100644 --- a/_webi/releases.js +++ b/_webi/releases.js @@ -1,7 +1,7 @@ 'use strict'; -var fs = require('fs'); -var path = require('path'); +var fs = require('node:fs'); +var path = require('node:path'); var request = require('@root/request'); var _normalize = require('../_webi/normalize.js'); @@ -9,22 +9,23 @@ var reInstallTpl = /\s*#?\s*{{ installer }}/; var Releases = module.exports; Releases.get = async function (pkgdir) { - var get; + let get; try { get = require(path.join(pkgdir, 'releases.js')); } catch (e) { throw new Error('no releases.js for', pkgdir.split(/[\/\\]+/).pop()); } - return get(request).then(function (all) { - return _normalize(all); - }); + + let all = await get(request); + + return _normalize(all); }; function padScript(txt) { return txt.replace(/^/g, ' '); } -Releases.renderBash = function ( +Releases.renderBash = async function ( pkgdir, rel, { baseurl, pkg, tag, ver, os = '', arch = '', formats }, @@ -153,7 +154,7 @@ Releases.renderBash = function ( }); }; -Releases.renderBatch = function ( +Releases.renderBatch = async function ( pkgdir, rel, { baseurl, pkg, tag, ver, os, arch, formats }, @@ -193,7 +194,7 @@ Releases.renderBatch = function ( }); }; -Releases.renderPowerShell = function ( +Releases.renderPowerShell = async function ( pkgdir, rel, { baseurl, pkg, tag, ver, os, arch, formats }, diff --git a/_webi/serve-installer.js b/_webi/serve-installer.js index 7057687..337be57 100644 --- a/_webi/serve-installer.js +++ b/_webi/serve-installer.js @@ -52,41 +52,41 @@ module.exports = async function serveInstaller( // TODO maybe move package/version/lts/channel detection into getReleases var myOs = uaDetect.os(ua); var myArch = uaDetect.arch(ua); - return packages.get(pkg).then(function (cfg) { - return getReleases({ - pkg: cfg.alias || pkg, - ver, - os: myOs, - arch: myArch, - lts, - channel, - formats, - limit: 1, - }).then(function (rels) { - var rel = rels.releases[0]; - var pkgdir = path.join(installersDir, pkg); - var opts = { - baseurl, - pkg: cfg.alias || pkg, - ver, - tag, - os: myOs, - arch: myArch, - lts, - channel, - formats, - limit: 1, - }; - rel.oses = rels.oses; - rel.arches = rels.arches; - rel.formats = rels.formats; - if ('bat' === ext) { - return Releases.renderBatch(pkgdir, rel, opts); - } else if ('ps1' === ext) { - return Releases.renderPowerShell(pkgdir, rel, opts); - } else { - return Releases.renderBash(pkgdir, rel, opts); - } - }); + let cfg = await packages.get(pkg); + let rels = await getReleases({ + pkg: cfg.alias || pkg, + ver, + os: myOs, + arch: myArch, + lts, + channel, + formats, + limit: 1, }); + + var rel = rels.releases[0]; + var pkgdir = path.join(installersDir, pkg); + var opts = { + baseurl, + pkg: cfg.alias || pkg, + ver, + tag, + os: myOs, + arch: myArch, + lts, + channel, + formats, + limit: 1, + }; + rel.oses = rels.oses; + rel.arches = rels.arches; + rel.formats = rels.formats; + + if ('bat' === ext) { + return Releases.renderBatch(pkgdir, rel, opts); + } + if ('ps1' === ext) { + return Releases.renderPowerShell(pkgdir, rel, opts); + } + return Releases.renderBash(pkgdir, rel, opts); }; diff --git a/_webi/transform-releases.js b/_webi/transform-releases.js index bd0679e..3d1fa02 100644 --- a/_webi/transform-releases.js +++ b/_webi/transform-releases.js @@ -64,41 +64,55 @@ function createFormatsSorter(formats) { async function getCachedReleases(pkg) { // returns { download: '