git-release-manager
Version:
A tool to generate release notes from git commit history
58 lines • 3.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCommitCommand = createCommitCommand;
const commander_1 = require("commander");
const configManager_1 = require("../config/configManager");
const CommitController_1 = require("../modules/commit/CommitController");
function createCommitCommand(program) {
const commitProgram = program
.command("commit")
.alias("c")
.description("Operations related to git commits");
commitProgram.addCommand(new commander_1.Command()
.command("create")
.alias("c")
.description("Create a new commit with staged changes")
.option("-m, --message <message>", "Specify the commit message")
.option("-b, --body <lines...>", "Add commit body text")
.option("-t, --type <type>", "Specify commit type (e.g., feat, fix, chore)")
.option("-s, --scope <scope>", "Specify commit scope (e.g., module or component)")
// .option("-a, --all", "Stage all modified and deleted files for commit")
// .option(
// "-f, --file <files...>",
// "Specify individual files to stage and commit"
// )
.option('--stage <files...>', 'Files to add or "all"/"empty"', 'all')
.option("--dry-run", "Show what would be committed without committing")
.option("--no-verify", "Skip pre-commit and commit-msg hooks")
.option("-i, --sign", "Sign the commit with a GPG key")
.action(async (args, commandOptions) => {
const options = { ...program.opts(), ...commandOptions };
const config = await (0, configManager_1.readConfig)(options === null || options === void 0 ? void 0 : options.config, options.environment);
const controller = new CommitController_1.CommitController();
await controller.handleCreateCommand(options, config);
}));
commitProgram.addCommand(new commander_1.Command()
.command("list")
.alias("l")
.description("List recent commits with options to filter")
.option("-c, --count <number>", "Number of commits to list")
.action(async (args, commandOptions) => {
const options = { ...program.opts(), ...commandOptions };
const config = await (0, configManager_1.readConfig)(options === null || options === void 0 ? void 0 : options.config, options.environment);
const controller = new CommitController_1.CommitController();
await controller.handleListCommand(options, config);
}));
commitProgram.addCommand(new commander_1.Command()
.command("amend")
.alias("a")
.description("Amend the previous commit")
.action(async (args, commandOptions) => {
const options = { ...program.opts(), ...commandOptions };
const config = await (0, configManager_1.readConfig)(options === null || options === void 0 ? void 0 : options.config, options.environment);
const controller = new CommitController_1.CommitController();
await controller.handleAmendCommand(options, config);
}));
return commitProgram;
}
//# sourceMappingURL=commitCommand.js.map