git-suggest
Version:
A lightweight command-line tool that automatically generates contextual, high-quality Git commit messages based on your staged code changes. Powered by GitHub Copilot CLI, it helps you write smarter commits with less typing.
62 lines • 2.35 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const commander_1 = require("commander");
const chalk_1 = __importDefault(require("chalk"));
const generate_1 = require("./commands/generate");
const setup_1 = require("./commands/setup");
const prerequisites_1 = require("./utils/prerequisites");
const program = new commander_1.Command();
program
.name('git-suggest')
.description('Generate contextual Git commit messages powered by GitHub Copilot CLI')
.version('1.0.1');
program
.command('generate')
.alias('g')
.description('Generate a commit message based on staged changes')
.option('-p, --prefix <prefix>', 'Prefix for the commit message (e.g., "feat(auth):")')
.option('-t, --type <type>', 'Commit type (feat, fix, docs, style, refactor, test, chore)')
.option('-s, --scope <scope>', 'Commit scope')
.option('--no-interactive', 'Skip interactive mode')
.action(async (options) => {
try {
await (0, prerequisites_1.checkPrerequisites)();
await (0, generate_1.generateCommitMessage)(options);
}
catch (error) {
console.error(chalk_1.default.red('Error:'), error instanceof Error ? error.message : error);
process.exit(1);
}
});
program
.command('setup')
.description('Setup shell integration for git commit autocomplete')
.option('--shell <shell>', 'Shell type (bash, zsh, fish)', 'auto')
.action(async (options) => {
try {
await (0, setup_1.setupShellIntegration)(options);
}
catch (error) {
console.error(chalk_1.default.red('Error:'), error instanceof Error ? error.message : error);
process.exit(1);
}
});
program
.command('check')
.description('Check if all prerequisites are installed')
.action(async () => {
try {
await (0, prerequisites_1.checkPrerequisites)(true);
console.log(chalk_1.default.green('✓ All prerequisites are installed and configured'));
}
catch (error) {
console.error(chalk_1.default.red('Error:'), error instanceof Error ? error.message : error);
process.exit(1);
}
});
program.parse();
//# sourceMappingURL=cli.js.map