UNPKG

cartorio-plataforma-cli

Version:

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

66 lines (57 loc) 2.4 kB
#!/usr/bin/env node const { program } = require('commander'); const figlet = require('figlet'); const chalk = require('chalk'); // Importar comandos const start = require('./commands/start'); const stop = require('./commands/stop'); const status = require('./commands/status'); const moduleCommand = require('./commands/module'); // Exibir banner console.log( chalk.blue( figlet.textSync('Plataforma CLI', { horizontalLayout: 'full' }) ) ); program .name('plataforma') .description('CLI para gerenciar a plataforma do Cartório Criciúma') .version('1.0.0'); program .command('start') .description('Iniciar componentes da plataforma') .option('-e, --env <ambiente>', 'ambiente (dev, local, prod)', 'local') .option('--all', 'iniciar todos os componentes') .option('--infra', 'iniciar apenas infraestrutura') .option('--core', 'iniciar infraestrutura e core') .option('--full', 'iniciar infraestrutura, core e módulos') .option('--custom', 'iniciar componentes customizados') .option('--modules <lista>', 'lista de módulos no formato id:tipo (ex: senhas:frontend,senhas:backend)') .option('-i, --interactive', 'modo interativo para selecionar componentes') .option('--no-build', 'não construir imagens antes de iniciar') .action(start); program .command('stop') .description('Parar componentes da plataforma') .option('-e, --env <ambiente>', 'ambiente (dev, local, prod)', 'local') .option('--all', 'parar todos os componentes') .option('-i, --interactive', 'modo interativo para selecionar componentes') .action(stop); program .command('status') .description('Verificar status dos componentes') .option('-e, --env <ambiente>', 'ambiente (dev, local, prod)', 'local') .action(status); program .command('module') .description('Gerenciar módulos da plataforma') .option('--create', 'criar novo módulo') .option('--list', 'listar módulos existentes') .option('--update', 'atualizar arquivo bake.hcl com módulos registrados') .option('-i, --interactive', 'modo interativo', true) .option('--id <id>', 'ID do módulo (para --create)') .option('--name <nome>', 'Nome do módulo (para --create)') .option('--type <tipo>', 'Tipo do módulo: frontend, backend, core, infrastructure (para --create)') .option('--create-directories', 'criar diretórios para o módulo', true) .action(moduleCommand); program.parse();