@aws-cdk-testing/cli-integ
Version:
Integration tests for the AWS CDK CLI
57 lines (50 loc) • 1.47 kB
text/typescript
import * as yargs from 'yargs';
import { fetchPreviousVersion } from '../github';
async function main() {
const args = await yargs
.option('token', {
descripton: 'GitHub token (default: from environment GITHUB_TOKEN)',
alias: 't',
type: 'string',
requiresArg: true,
})
.command('last-release', 'Query the last release', cmd => cmd
.option('prior-to', {
description: 'Return the most recent release before the given version',
alias: 'p',
type: 'string',
requiresArg: true,
})
.option('major', {
description: 'Return the most recent release that matches',
alias: 'm',
type: 'string',
requiresArg: true,
}))
.demandCommand()
.help()
.showHelpOnFail(false)
.argv;
const command = args._[0];
const token = args.token ?? process.env.GITHUB_TOKEN;
if (!token) {
throw new Error('Either pass --token or set GITHUB_TOKEN.');
}
switch (command) {
case 'last-release':
if (args['prior-to'] && args.major) {
throw new Error('Cannot pass both `--prior-to and --major at the same time');
}
// eslint-disable-next-line no-console
console.log(await fetchPreviousVersion(token, {
priorTo: args['prior-to'],
majorVersion: args.major,
}));
break;
}
}
main().catch(e => {
// eslint-disable-next-line no-console
console.error(e);
process.exitCode = 1;
});