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
JavaScript
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();