UNPKG

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
#!/usr/bin/env node "use strict"; 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