UNPKG

cartorio-plataforma-cli

Version:

CLI para gerenciar a Plataforma do Cartório de Criciúma com sistema de módulos

79 lines (71 loc) 2.82 kB
#!/usr/bin/env node const { program } = require('commander'); const help = require('./help'); const start = require('./commands/start'); const stop = require('./commands/stop'); const status = require('./commands/status'); const logs = require('./commands/logs'); // Informações da CLI program .name('plataforma') .description('CLI para gerenciar a Plataforma do Cartório de Criciúma') .version('2.8.1'); // Comando de ajuda personalizado program .command('help') .description('Exibe ajuda detalhada') .action(() => { help(); }); // Comando para iniciar componentes program .command('start') .description('Inicia componentes da plataforma') .option('-a, --all', 'Inicia todos os componentes (Infra + Core + Módulos)') .option('-i, --infra', 'Inicia apenas serviços de infraestrutura') .option('-c, --core', 'Inicia infraestrutura e componentes core') .option('-f, --full', 'Inicia infraestrutura, core e módulos') .option('-u, --custom', 'Modo personalizado - permite selecionar módulos específicos') .option('-m, --modules <lista>', 'Lista de módulos para iniciar no formato id:tipo (ex: senhas:frontend,senhas:backend)') .option('-e, --env <ambiente>', 'Especifica o ambiente (dev, local, prod)') .option('-I, --interactive', 'Modo interativo para seleção de componentes') .option('-b, --build', 'Constrói as imagens com Docker Buildx Bake antes de iniciar (padrão)') .option('-n, --no-build', 'Não constrói as imagens, usa as existentes') .action((options) => { start(options); }); // Comando para parar componentes program .command('stop') .description('Para componentes da plataforma') .option('-e, --env <ambiente>', 'Especifica o ambiente (dev, local, prod)') .option('-i, --interactive', 'Modo interativo para seleção de componentes e ambiente') .action((options) => { stop(options); }); // Comando para verificar status program .command('status') .description('Exibe o status atual dos componentes da plataforma') .option('-e, --env <ambiente>', 'Especifica o ambiente (dev, local, prod)') .option('-i, --interactive', 'Modo interativo para verificação de status') .action((options) => { status(options); }); // Comando para exibir logs program .command('logs') .description('Exibe logs dos componentes da plataforma') .option('-s, --service <serviço>', 'Exibe logs apenas do serviço especificado') .option('-e, --env <ambiente>', 'Especifica o ambiente (dev, local, prod)') .option('-f, --follow', 'Segue os logs em tempo real') .option('-i, --interactive', 'Modo interativo para seleção de serviços') .action((options) => { logs(options); }); // Se nenhum argumento for fornecido, exibir ajuda if (process.argv.length <= 2) { help(); } else { program.parse(process.argv); }