55 lines
1.6 KiB
TypeScript
55 lines
1.6 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
import {Arguments, Argv, CommandModule} from 'yargs';
|
|
|
|
import {CommitMsgSource} from '../commit-message-source';
|
|
|
|
import {runWizard} from './wizard';
|
|
|
|
|
|
export interface WizardOptions {
|
|
filePath: string;
|
|
commitSha: string|undefined;
|
|
source: CommitMsgSource|undefined;
|
|
}
|
|
|
|
/** Builds the command. */
|
|
function builder(yargs: Argv) {
|
|
return yargs
|
|
.positional('filePath', {
|
|
description: 'The file path to write the generated commit message into',
|
|
type: 'string',
|
|
demandOption: true,
|
|
})
|
|
.positional('source', {
|
|
choices: ['message', 'template', 'merge', 'squash', 'commit'] as const,
|
|
description: 'The source of the commit message as described here: ' +
|
|
'https://git-scm.com/docs/githooks#_prepare_commit_msg'
|
|
})
|
|
.positional('commitSha', {
|
|
description: 'The commit sha if source is set to `commit`',
|
|
type: 'string',
|
|
});
|
|
}
|
|
|
|
/** Handles the command. */
|
|
async function handler(args: Arguments<WizardOptions>) {
|
|
await runWizard(args);
|
|
}
|
|
|
|
/** yargs command module describing the command. */
|
|
export const WizardModule: CommandModule<{}, WizardOptions> = {
|
|
handler,
|
|
builder,
|
|
command: 'wizard <filePath> [source] [commitSha]',
|
|
// Description: Run the wizard to build a base commit message before opening to complete.
|
|
// No describe is defiend to hide the command from the --help.
|
|
describe: false,
|
|
};
|