modern-dev-cli
Version:
A modern, comprehensive CLI toolkit for streamlining development workflows with Git operations, project scaffolding, and file management
64 lines (55 loc) • 1.63 kB
JavaScript
import { program } from 'commander';
import { gitCommands, projectCommands, fileCommands } from '../src/index.js';
import { logger } from '../src/utils/logger.js';
program
.version('1.0.0')
.description('Developer Toolkit CLI');
// Git commands
program
.command('git-status')
.description('Show git repository status')
.action(async () => {
try {
const status = await gitCommands.getStatus();
console.log(status);
} catch (error) {
logger.error('Failed to get git status');
}
});
program
.command('quick-commit <message>')
.description('Quick commit all changes')
.action(async (message) => {
try {
await gitCommands.quickCommit(message);
} catch (error) {
logger.error('Failed to commit changes');
}
});
// Project commands
program
.command('create-project <name>')
.description('Create a new project')
.option('-t, --template <template>', 'Project template to use')
.action(async (name, options) => {
try {
await projectCommands.createProject(name, options.template);
} catch (error) {
logger.error('Failed to create project');
}
});
// File commands
program
.command('rename <directory>')
.description('Bulk rename files')
.requiredOption('-s, --search <pattern>', 'Search pattern')
.requiredOption('-r, --replace <text>', 'Replace text')
.action(async (directory, options) => {
try {
await fileCommands.bulkRename(directory, options.search, options.replace);
} catch (error) {
logger.error('Failed to rename files');
}
});
program.parse(process.argv);