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