UNPKG

git-limpa-branches

Version:
70 lines (69 loc) 2.48 kB
#!/usr/bin/env node /** * @fileoverview Ponto de entrada principal do utilitário git-limpa-branches */ import minimist from 'minimist'; import { fileURLToPath } from 'url'; import { basename } from 'path'; import { GitLimpaBranchesService } from './git-limpa-branches-service.js'; // Parse argumentos da linha de comando const parsedArgs = minimist(process.argv.slice(2), { string: ['protegidos'], alias: { p: 'protegidos', h: 'help' }, default: { protegidos: 'main,master,develop,gh-pages' }, }); const argv = { protegidos: parsedArgs.protegidos, help: !!parsedArgs.help, ...parsedArgs, }; // Mostrar ajuda se solicitado if (argv.help) { const cores = { vermelho: '\x1b[31m', verde: '\x1b[32m', amarelo: '\x1b[33m', azul: '\x1b[34m', reset: '\x1b[0m', }; console.log(` ${cores.amarelo}Git-Limpa-Branches${cores.reset} - Utilitário para limpeza segura de branches Git ${cores.verde}Uso:${cores.reset} git-limpa-branches [opções] ${cores.verde}Opções:${cores.reset} -p, --protegidos Lista de branches protegidos, separados por vírgula Padrão: main,master,develop -h, --help Exibe esta ajuda e sai ${cores.verde}Exemplos:${cores.reset} git-limpa-branches git-limpa-branches --protegidos=main,producao,homologacao git-limpa-branches -p main,release `); process.exit(0); } // Branches protegidos const BRANCHES_PROTEGIDOS = argv.protegidos .split(',') .map((b) => b.trim()) .filter(Boolean); // Inicializa o serviço const gitService = new GitLimpaBranchesService(BRANCHES_PROTEGIDOS); // Função para determinar se o script está sendo executado como principal function isRunningAsMainScript() { const currentFilePath = fileURLToPath(import.meta.url); const currentFileName = basename(currentFilePath); const executedFileName = basename(process.argv[1] || ''); const isMain = currentFileName === 'git-limpa-branches.js' || executedFileName === 'git-limpa-branches'; return isMain; } // Executa main() se for o script principal if (isRunningAsMainScript()) { console.log('Executando main()...'); gitService.main().catch((erro) => { const cores = gitService.getCores(); console.error(`${cores.vermelho}Erro fatal: ${erro instanceof Error ? erro.message : String(erro)}${cores.reset}`); process.exit(1); }); } // Exporta o serviço export { gitService, BRANCHES_PROTEGIDOS };