UNPKG

gitquick

Version:

Git Add, Commit, and Push on the Fly

59 lines 2.29 kB
#!/usr/bin/env node import { program } from 'commander'; import runGitQuick, { setDebugMode } from '../lib/runner.js'; import { promptCommitMessage, promptLongCommitMessage } from '../lib/prompt.js'; import { checkCommitMessageLength } from '../lib/validation.js'; import { createRequire } from 'module'; const require = createRequire(import.meta.url); const { version } = require('../../package.json'); program .description('Example: gitquick "I fixed a bug"') .argument('[message]', 'Commit message') .option('-d, --debug', 'Enable debug mode with verbose output') .option('--verbose', 'Enable verbose output (alias for --debug)') .version(version, '-v, --version') .action(async (message, options) => { // Enable debug mode if flag is set if (options.debug || options.verbose) { setDebugMode(true); } // Handle multi-word messages without quotes const processArgs = process.argv.slice(2); const flagArgs = processArgs.filter(arg => arg.startsWith('-')); const messageArgs = processArgs.filter(arg => !arg.startsWith('-')); if (messageArgs.length > 1) { message = messageArgs.join(' '); } try { // If no message provided, prompt for one if (!message) { message = await promptCommitMessage() || undefined; } // Check if message exceeds length limit if (message) { const lengthCheck = checkCommitMessageLength(message); // If message is too long, prompt user to shorten or keep original if (!lengthCheck.isValid) { const newMessage = await promptLongCommitMessage(message); if (newMessage) { message = newMessage; } else { console.log('Unable to initiate commit process. Please try again.'); process.exit(1); } } return await runGitQuick(message); } else { console.log('Unable to initiate commit process. Please try again.'); process.exit(1); } } catch (error) { console.error(error.message || error); process.exit(1); } }); program.parse(process.argv); //# sourceMappingURL=index.js.map