#!/usr/bin/env node
'use strict';
const {join, relative} = require('path');
const {handleError} = require('./utils');
const yargs = require('yargs');
const clear = require('clear');
const theme = require('./theme');
const {
downloadBuildArtifacts,
} = require('./shared-commands/download-build-artifacts');
const argv = yargs.wrap(yargs.terminalWidth()).options({
releaseChannel: {
alias: 'r',
describe: 'Download the given release channel.',
requiresArg: true,
type: 'string',
choices: ['experimental', 'stable'],
default: 'experimental',
},
commit: {
alias: 'c',
describe: 'Commit hash to download.',
requiresArg: true,
demandOption: true,
type: 'string',
},
noVerify: {
describe: 'Skip verification',
requiresArg: false,
type: 'boolean',
default: false,
},
}).argv;
function printSummary(commit) {
const commandPath = relative(
process.env.PWD,
join(__dirname, '../download-experimental-build.js')
);
clear();
const message = theme`
{caution An experimental build has been downloaded!}
You can download this build again by running:
{path ${commandPath}} --commit={commit ${commit}}
`;
console.log(message.replace(/\n +/g, '\n').trim());
}
const main = async () => {
const {commit, releaseChannel, noVerify} = argv;
try {
await downloadBuildArtifacts({
commit,
releaseChannel,
noVerify,
});
printSummary(argv.commit);
} catch (error) {
handleError(error);
}
};
main();