UNPKG

jsii-release

Version:

Release jsii modules to multiple package managers

154 lines • 16.1 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.main = void 0; /** * Publib CodeArtifact CLI */ /* eslint-disable no-console */ const yargs = __importStar(require("yargs")); const codeartifact_cli_1 = require("../codeartifact/codeartifact-cli"); const display_1 = require("../codeartifact/display"); async function main() { await yargs .usage('$0 <command>') .option('assume-role-arn', { description: 'Role to assume before doing CodeArtifact calls', alias: 'a', requiresArg: true, type: 'string', }) .command('create', 'Create a temporary CodeArtifact repository with upstreams', cmd => cmd .option('gc', { description: 'Garbage collect old repositories', type: 'boolean', default: true, }) .option('login', { description: 'Automatically log in to the newly created repository', type: 'boolean', default: true, }), async (args) => { const cli = new codeartifact_cli_1.CodeArtifactCli({ assumeRoleArn: args['assume-role-arn'], }); if (args.gc) { await cli.gc(); } const repoName = await cli.create(); console.log(repoName); if (args.login) { await cli.login(repoName); cli.usageDir.advertise(); } }) .command('gc', 'Clean up day-old testing repositories', cmd => cmd, async (args) => { const cli = new codeartifact_cli_1.CodeArtifactCli({ assumeRoleArn: args['assume-role-arn'], }); await cli.gc(); }) .command('login', 'Login to a given repository', cmd => cmd .option('repo', { alias: 'r', description: 'Name of the repository to log in to', type: 'string', requiresArg: true, }) .option('cmd', { alias: 'c', description: 'Run a command in a shell set up for the target repository', type: 'string', requiresArg: true, }), async (args) => { const cli = new codeartifact_cli_1.CodeArtifactCli({ assumeRoleArn: args['assume-role-arn'], }); await cli.login(args.repo); if (args.cmd) { await cli.runCommand(args.cmd); } else { cli.usageDir.advertise(); } }) .command('shell', 'Start a subshell with the repository activated', cmd => cmd .option('repo', { alias: 'r', description: 'Name of the repository to log in to', type: 'string', requiresArg: true, demandOption: false, }), async (args) => { var _a; const cli = new codeartifact_cli_1.CodeArtifactCli({ assumeRoleArn: args['assume-role-arn'], }); const repo = await cli.login(args.repo); const defaultShell = process.platform === 'win32' ? 'cmd' : 'bash'; (0, display_1.header)(`Shell activated for ${repo.repositoryName}`); await cli.runInteractively((_a = process.env.SHELL) !== null && _a !== void 0 ? _a : defaultShell); }) .command('publish <DIRECTORY>', 'Publish a given directory', cmd => cmd .positional('DIRECTORY', { descripton: 'Directory distribution', type: 'string', demandOption: true, }) .option('repo', { alias: 'r', description: 'Name of the repository to create (default: generate unique name)', type: 'string', requiresArg: true, }), async (args) => { const cli = new codeartifact_cli_1.CodeArtifactCli({ assumeRoleArn: args['assume-role-arn'], }); await cli.publish(args.DIRECTORY, args.repo); }) .command('delete', 'Delete testing repository', cmd => cmd .option('repo', { alias: 'r', description: 'Name of the repository to cleanup (default: most recently logged in to)', type: 'string', requiresArg: true, }), async (args) => { const cli = new codeartifact_cli_1.CodeArtifactCli({ assumeRoleArn: args['assume-role-arn'], }); await cli.delete(args.repo); }) .demandCommand(1, 'You must supply a command') .help() .showHelpOnFail(false) .parse(); } exports.main = main; main().catch(e => { // eslint-disable-next-line no-console console.error(e); process.exitCode = 1; }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGliLWNhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9wdWJsaWItY2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILCtCQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0IsdUVBQW1FO0FBQ25FLHFEQUFpRDtBQUUxQyxLQUFLLFVBQVUsSUFBSTtJQUN4QixNQUFNLEtBQUs7U0FDUixLQUFLLENBQUMsY0FBYyxDQUFDO1NBQ3JCLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtRQUN6QixXQUFXLEVBQUUsZ0RBQWdEO1FBQzdELEtBQUssRUFBRSxHQUFHO1FBQ1YsV0FBVyxFQUFFLElBQUk7UUFDakIsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDO1NBQ0QsT0FBTyxDQUFDLFFBQVEsRUFBRSwyREFBMkQsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUc7U0FDdkYsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNaLFdBQVcsRUFBRSxrQ0FBa0M7UUFDL0MsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7U0FDRCxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2YsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxJQUFJLEVBQUUsU0FBUztRQUNmLE9BQU8sRUFBRSxJQUFJO0tBQ2QsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUVuQixNQUFNLEdBQUcsR0FBRyxJQUFJLGtDQUFlLENBQUM7WUFDOUIsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDWCxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNoQjtRQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE9BQU8s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QUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2Ysc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFB1YmxpYiBDb2RlQXJ0aWZhY3QgQ0xJXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IENvZGVBcnRpZmFjdENsaSB9IGZyb20gJy4uL2NvZGVhcnRpZmFjdC9jb2RlYXJ0aWZhY3QtY2xpJztcbmltcG9ydCB7IGhlYWRlciB9IGZyb20gJy4uL2NvZGVhcnRpZmFjdC9kaXNwbGF5JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGF3YWl0IHlhcmdzXG4gICAgLnVzYWdlKCckMCA8Y29tbWFuZD4nKVxuICAgIC5vcHRpb24oJ2Fzc3VtZS1yb2xlLWFybicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUm9sZSB0byBhc3N1bWUgYmVmb3JlIGRvaW5nIENvZGVBcnRpZmFjdCBjYWxscycsXG4gICAgICBhbGlhczogJ2EnLFxuICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB9KVxuICAgIC5jb21tYW5kKCdjcmVhdGUnLCAnQ3JlYXRlIGEgdGVtcG9yYXJ5IENvZGVBcnRpZmFjdCByZXBvc2l0b3J5IHdpdGggdXBzdHJlYW1zJywgY21kID0+IGNtZFxuICAgICAgLm9wdGlvbignZ2MnLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnR2FyYmFnZSBjb2xsZWN0IG9sZCByZXBvc2l0b3JpZXMnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignbG9naW4nLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQXV0b21hdGljYWxseSBsb2cgaW4gdG8gdGhlIG5ld2x5IGNyZWF0ZWQgcmVwb3NpdG9yeScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgIH0pLCBhc3luYyAoYXJncykgPT4ge1xuXG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcblxuICAgICAgaWYgKGFyZ3MuZ2MpIHtcbiAgICAgICAgYXdhaXQgY2xpLmdjKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcG9OYW1lID0gYXdhaXQgY2xpLmNyZWF0ZSgpO1xuICAgICAgY29uc29sZS5sb2cocmVwb05hbWUpO1xuXG4gICAgICBpZiAoYXJncy5sb2dpbikge1xuICAgICAgICBhd2FpdCBjbGkubG9naW4ocmVwb05hbWUpO1xuICAgICAgICBjbGkudXNhZ2VEaXIuYWR2ZXJ0aXNlKCk7XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29tbWFuZCgnZ2MnLCAnQ2xlYW4gdXAgZGF5LW9sZCB0ZXN0aW5nIHJlcG9zaXRvcmllcycsIGNtZCA9PiBjbWQsIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGNsaS5nYygpO1xuICAgIH0pXG4gICAgLmNvbW1hbmQoJ2xvZ2luJywgJ0xvZ2luIHRvIGEgZ2l2ZW4gcmVwb3NpdG9yeScsIGNtZCA9PiBjbWRcbiAgICAgIC5vcHRpb24oJ3JlcG8nLCB7XG4gICAgICAgIGFsaWFzOiAncicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgcmVwb3NpdG9yeSB0byBsb2cgaW4gdG8nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignY21kJywge1xuICAgICAgICBhbGlhczogJ2MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1J1biBhIGNvbW1hbmQgaW4gYSBzaGVsbCBzZXQgdXAgZm9yIHRoZSB0YXJnZXQgcmVwb3NpdG9yeScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgIH0pLCBhc3luYyAoYXJncykgPT4ge1xuXG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGNsaS5sb2dpbihhcmdzLnJlcG8pO1xuXG4gICAgICBpZiAoYXJncy5jbWQpIHtcbiAgICAgICAgYXdhaXQgY2xpLnJ1bkNvbW1hbmQoYXJncy5jbWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xpLnVzYWdlRGlyLmFkdmVydGlzZSgpO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmNvbW1hbmQoJ3NoZWxsJywgJ1N0YXJ0IGEgc3Vic2hlbGwgd2l0aCB0aGUgcmVwb3NpdG9yeSBhY3RpdmF0ZWQnLCBjbWQgPT4gY21kXG4gICAgICAub3B0aW9uKCdyZXBvJywge1xuICAgICAgICBhbGlhczogJ3InLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gbG9nIGluIHRvJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICBkZW1hbmRPcHRpb246IGZhbHNlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCBjbGkgPSBuZXcgQ29kZUFydGlmYWN0Q2xpKHtcbiAgICAgICAgYXNzdW1lUm9sZUFybjogYXJnc1snYXNzdW1lLXJvbGUtYXJuJ10sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlcG8gPSBhd2FpdCBjbGkubG9naW4oYXJncy5yZXBvKTtcblxuICAgICAgY29uc3QgZGVmYXVsdFNoZWxsID0gcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/ICdjbWQnIDogJ2Jhc2gnO1xuXG4gICAgICBoZWFkZXIoYFNoZWxsIGFjdGl2YXRlZCBmb3IgJHtyZXBvLnJlcG9zaXRvcnlOYW1lfWApO1xuICAgICAgYXdhaXQgY2xpLnJ1bkludGVyYWN0aXZlbHkocHJvY2Vzcy5lbnYuU0hFTEwgPz8gZGVmYXVsdFNoZWxsKTtcbiAgICB9KVxuICAgIC5jb21tYW5kKCdwdWJsaXNoIDxESVJFQ1RPUlk+JywgJ1B1Ymxpc2ggYSBnaXZlbiBkaXJlY3RvcnknLCBjbWQgPT4gY21kXG4gICAgICAucG9zaXRpb25hbCgnRElSRUNUT1JZJywge1xuICAgICAgICBkZXNjcmlwdG9uOiAnRGlyZWN0b3J5IGRpc3RyaWJ1dGlvbicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZW1hbmRPcHRpb246IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbigncmVwbycsIHtcbiAgICAgICAgYWxpYXM6ICdyJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNyZWF0ZSAoZGVmYXVsdDogZ2VuZXJhdGUgdW5pcXVlIG5hbWUpJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG5cbiAgICAgIGNvbnN0IGNsaSA9IG5ldyBDb2RlQXJ0aWZhY3RDbGkoe1xuICAgICAgICBhc3N1bWVSb2xlQXJuOiBhcmdzWydhc3N1bWUtcm9sZS1hcm4nXSxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgY2xpLnB1Ymxpc2goYXJncy5ESVJFQ1RPUlksIGFyZ3MucmVwbyk7XG4gICAgfSlcbiAgICAuY29tbWFuZCgnZGVsZXRlJywgJ0RlbGV0ZSB0ZXN0aW5nIHJlcG9zaXRvcnknLCBjbWQgPT4gY21kXG4gICAgICAub3B0aW9uKCdyZXBvJywge1xuICAgICAgICBhbGlhczogJ3InLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gY2xlYW51cCAoZGVmYXVsdDogbW9zdCByZWNlbnRseSBsb2dnZWQgaW4gdG8pJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG5cbiAgICAgIGNvbnN0IGNsaSA9IG5ldyBDb2RlQXJ0aWZhY3RDbGkoe1xuICAgICAgICBhc3N1bWVSb2xlQXJuOiBhcmdzWydhc3N1bWUtcm9sZS1hcm4nXSxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgY2xpLmRlbGV0ZShhcmdzLnJlcG8pO1xuICAgIH0pXG4gICAgLmRlbWFuZENvbW1hbmQoMSwgJ1lvdSBtdXN0IHN1cHBseSBhIGNvbW1hbmQnKVxuICAgIC5oZWxwKClcbiAgICAuc2hvd0hlbHBPbkZhaWwoZmFsc2UpXG4gICAgLnBhcnNlKCk7XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==