moshai-cli
Version:
A modern, fast Node.js CLI powered by arasadrahman
31 lines (23 loc) • 806 B
JavaScript
const { Command } = require('commander');
const path = require('path');
const program = new Command();
const { loadCommands } = require('../core/CommandLoader');
program.name('moshai').description('The Moshai CLI').version('1.0.0');
const commands = loadCommands(path.join(__dirname, '../commands'));
commands.forEach(cmd => {
const command = program
.command(cmd.name)
.description(cmd.description);
cmd.args.forEach(arg => {
command.argument(`<${arg.name}>`, arg.description);
});
command.action(async (...values) => {
const options = {};
cmd.args.forEach((arg, i) => {
options[arg.name] = values[i];
});
await cmd.handle(options);
});
});
program.parse();