UNPKG

git-release-manager

Version:

A tool to generate release notes from git commit history

137 lines 7.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createFlowCommand = createFlowCommand; const commander_1 = require("commander"); const FlowManager_1 = require("../../modules/FlowManager"); function createFlowCommand(program) { const flowProgram = program .command("flow") .alias('f') .description("Tools to manage your git releases and versioning"); const programPhase = flowProgram.command('phase').description(''); programPhase.addCommand(new commander_1.Command() .command('dev') .alias('d') .description('Determine version') .addOption(new commander_1.Option('-p, --print <type>', 'Print option can be full, base, channel, or left empty').choices(['full', 'base', 'channel', 'build']).default('')) .addOption(new commander_1.Option('-n, --next', 'Next version')) .addOption(new commander_1.Option('-c, --current', 'Current version').default(false)) .action(async (commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const determinedVersion = await flowManager.DetermineDevPhaseVersion('dev', options); if (determinedVersion) { console.log(determinedVersion.replace('\n', '')); } })); programPhase.addCommand(new commander_1.Command() .command('qa') .alias('t') .description('Determine version') .addArgument(new commander_1.Argument('<channel>', 'Specify the channel')) .addArgument(new commander_1.Argument('[version]', 'Specify the version')) .addOption(new commander_1.Option('-n, --next', 'Next version')) .addOption(new commander_1.Option('--next-release', 'Next release version')) .addOption(new commander_1.Option('-c, --current', 'Current version').default(false)) .addOption(new commander_1.Option('-p, --print <type>', 'Print option can be full, base, channel, or left empty').choices(['full', 'base', 'channel', 'build']).default('')) .action(async (channel, version, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const determinedVersion = await flowManager.DetermineQAPhaseVersion(channel, version, options); if (determinedVersion) { console.log(determinedVersion.replace('\n', '')); } })); programPhase.addCommand(new commander_1.Command() .command('stage') .alias('s') .description('Determine version') .addArgument(new commander_1.Argument('<channel>', 'Specify the channel')) .addArgument(new commander_1.Argument('[version]', 'Specify the version')) .addOption(new commander_1.Option('-n, --next', 'Next version')) .addOption(new commander_1.Option('--next-release', 'Next release version')) .addOption(new commander_1.Option('-c, --current', 'Current version').default(false)) .addOption(new commander_1.Option('-p, --print <type>', 'Print option can be full, base, channel, or left empty').choices(['full', 'base', 'channel', 'build']).default('')) .action(async (channel, version, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const determinedVersion = await flowManager.DetermineStagePhaseVersion(channel, version, options); if (determinedVersion) { console.log(determinedVersion.replace('\n', '')); } })); programPhase.addCommand(new commander_1.Command() .command('prod') .alias('p') .description('Determine version') .addArgument(new commander_1.Argument('[version]', 'Specify the version')) .addOption(new commander_1.Option('-n, --next', 'Next version')) .addOption(new commander_1.Option('--next-release', 'Next release version')) .addOption(new commander_1.Option('--next-fix', 'Next fix release version')) .addOption(new commander_1.Option('-c, --current', 'Current version').default(false)) .addOption(new commander_1.Option('--previous', 'Previous version')) .addOption(new commander_1.Option('--previous-fix', 'Previous fix release version')) .addOption(new commander_1.Option('-p, --print <type>', 'Print option can be full, base, channel, or left empty').choices(['full', 'base', 'channel']).default('')) .action(async (version, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const determinedVersion = await flowManager.DetermineProductionPhaseVersion("beta", version, options); if (determinedVersion) { console.log(determinedVersion.replace('\n', '')); } })); const programTag = flowProgram.command('tag').description(''); programTag.addCommand(new commander_1.Command() .command('list') .alias('l') .description('List release branches') .addArgument(new commander_1.Argument('branch')) .action(async (branch, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const existingTags = await flowManager.listBranchTags(branch); console.log(existingTags); })); programTag.addCommand(new commander_1.Command() .command('latest') .description('Get latest branch tag') .addArgument(new commander_1.Argument('<branch>', 'Specify the branch')) .addOption(new commander_1.Option('-p, --print <type>', 'Print option can be full, base, channel, or left empty').choices(['full', 'base', 'channel', 'build']).default('')) .action(async (branch, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const latestBranchTag = await flowManager.latestTagVersion(branch); const latestBranchVersion = flowManager.getVersionPart(latestBranchTag, options); console.log(latestBranchVersion); })); const programRelease = flowProgram.command('release').description(''); programRelease.addCommand(new commander_1.Command() .command('list') .alias('l') .description('List release branches') .addArgument(new commander_1.Argument('channel')) .action(async (channel, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); const existingReleaseBranches = await flowManager.listReleaseBranches(channel); console.log(existingReleaseBranches); })); programRelease.addCommand(new commander_1.Command() .command('latest') .description('Get latest release branch') .addArgument(new commander_1.Argument('<channel>', 'Specify the channel')) .addOption(new commander_1.Option('-p, --print <type>', 'Print option can be full, base, channel, or left empty').choices(['full', 'base', 'channel', 'build']).default('')) .action(async (channel, commandOptions) => { const options = { ...program.opts(), ...commandOptions }; const flowManager = new FlowManager_1.FlowManager(); let latestBranch = await flowManager.latestReleaseBranchVersion(channel); latestBranch = flowManager.getVersionPart(latestBranch, options); console.log(latestBranch); })); program.action(() => { console.log('Please specify a command or use --help for usage information'); process.exit(1); }); return flowProgram; } //# sourceMappingURL=command.js.map