chore: improve //utils/check_availability.js (#4770)
This patch teaches `//utils/check_availability.js` to break when it is run with no arguments and it finds an available revision.
This commit is contained in:
parent
cc805e750c
commit
3bbc45af8b
@ -64,7 +64,7 @@ Running command without arguments will check against omahaproxy revisions.`);
|
|||||||
|
|
||||||
const fromRevision = parseInt(process.argv[2], 10);
|
const fromRevision = parseInt(process.argv[2], 10);
|
||||||
const toRevision = parseInt(process.argv[3], 10);
|
const toRevision = parseInt(process.argv[3], 10);
|
||||||
checkRangeAvailability(fromRevision, toRevision);
|
checkRangeAvailability(fromRevision, toRevision, false /* stopWhenAllAvailable */);
|
||||||
|
|
||||||
async function checkOmahaProxyAvailability() {
|
async function checkOmahaProxyAvailability() {
|
||||||
const lastchanged = (await Promise.all([
|
const lastchanged = (await Promise.all([
|
||||||
@ -74,25 +74,30 @@ async function checkOmahaProxyAvailability() {
|
|||||||
fetch('https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/LAST_CHANGE'),
|
fetch('https://storage.googleapis.com/chromium-browser-snapshots/Win_x64/LAST_CHANGE'),
|
||||||
])).map(s => parseInt(s, 10));
|
])).map(s => parseInt(s, 10));
|
||||||
const from = Math.max(...lastchanged);
|
const from = Math.max(...lastchanged);
|
||||||
checkRangeAvailability(from, 0);
|
checkRangeAvailability(from, 0, true /* stopWhenAllAvailable */);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {number} fromRevision
|
* @param {number} fromRevision
|
||||||
* @param {number} toRevision
|
* @param {number} toRevision
|
||||||
|
* @param {boolean} stopWhenAllAvailable
|
||||||
*/
|
*/
|
||||||
async function checkRangeAvailability(fromRevision, toRevision) {
|
async function checkRangeAvailability(fromRevision, toRevision, stopWhenAllAvailable) {
|
||||||
const table = new Table([10, 7, 7, 7, 7]);
|
const table = new Table([10, 7, 7, 7, 7]);
|
||||||
table.drawRow([''].concat(SUPPORTER_PLATFORMS));
|
table.drawRow([''].concat(SUPPORTER_PLATFORMS));
|
||||||
const inc = fromRevision < toRevision ? 1 : -1;
|
const inc = fromRevision < toRevision ? 1 : -1;
|
||||||
for (let revision = fromRevision; revision !== toRevision; revision += inc)
|
for (let revision = fromRevision; revision !== toRevision; revision += inc) {
|
||||||
await checkAndDrawRevisionAvailability(table, '', revision);
|
const allAvailable = await checkAndDrawRevisionAvailability(table, '', revision);
|
||||||
|
if (allAvailable && stopWhenAllAvailable)
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {!Table} table
|
* @param {!Table} table
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
* @param {number} revision
|
* @param {number} revision
|
||||||
|
* @return {boolean}
|
||||||
*/
|
*/
|
||||||
async function checkAndDrawRevisionAvailability(table, name, revision) {
|
async function checkAndDrawRevisionAvailability(table, name, revision) {
|
||||||
const promises = fetchers.map(fetcher => fetcher.canDownload(revision));
|
const promises = fetchers.map(fetcher => fetcher.canDownload(revision));
|
||||||
@ -105,6 +110,7 @@ async function checkAndDrawRevisionAvailability(table, name, revision) {
|
|||||||
values.push(color + decoration + colors.reset);
|
values.push(color + decoration + colors.reset);
|
||||||
}
|
}
|
||||||
table.drawRow(values);
|
table.drawRow(values);
|
||||||
|
return allAvailable;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user