O Go CLI Toolkit é uma coleção de ferramentas de linha de comando projetadas para desenvolvedores que buscam eficiência no diagnóstico de rede e manipulação de dados. Construído em Go para performance máxima, o toolkit demonstra o uso avançado de concorrência e modularização extrema. Ideal para automação de tarefas diárias e validação rápida de ambientes distribuídos.
Verifique múltiplos hosts simultaneamente com status visual de fácil leitura:
tk ping google.com github.com localhost:8080Output:
Iniciando ping em 3 hosts...
┌────────────┬────────┬────┬─────────┐
│HOST │STATUS │CODE│DETAILS │
├────────────┼────────┼────┼─────────┤
│google.com │ ONLINE │200 │OK │
│github.com │ ONLINE │200 │OK │
│localhost │ OFFLINE│--- │refused │
└────────────┴────────┴────┴─────────┘
Transforme JSONs bagunçados em estruturas legíveis (pretty-print):
echo '{"id":1,"status":"ok"}' | tk format json| Tecnologia | Papel |
|---|---|
| Go 1.25 | Linguagem de alta performance e concorrência nativa |
| Cobra CLI | Framework de comandos e subcomandos de nível industrial |
| Viper | Gestão de configuração flexível (Yaml/Env) |
| Lipgloss | Estilização de terminais e renderização de tabelas |
| Testify | Suíte de testes unitários e asserções |
- Go >= 1.25
- Make (opcional, para conveniência de build)
go install github.com/ESousa97/go-cli-toolkit/cmd/tk@latestgit clone https://github.com/ESousa97/go-cli-toolkit.git
cd go-cli-toolkit
make build
make install| Target | Descrição |
|---|---|
make build |
Compila o binário localmente (tk) |
make test |
Executa a suíte completa de testes unitários |
make install |
Instala o binário no seu $GOPATH/bin |
make clean |
Remove artefatos de build e temporários |
make run |
Executa a CLI em tempo de compilação rápida |
O projeto segue o Standard Go Project Layout, dividindo responsabilidades entre cmd/ e internal/.
O comando ping utiliza o modelo de Fan-out para despachar requisições HTTP em Goroutines isoladas, sincronizadas por um sync.WaitGroup e coletadas via channel thread-safe.
graph LR
User --> CLI[Cobra Command]
CLI --> Manager[Ping Manager]
Manager --> W1[Worker Goroutine]
Manager --> W2[Worker Goroutine]
Manager --> W3[Worker Goroutine]
W1 & W2 & W3 --> Results[Result Channel]
Results --> UI[Lipgloss Table]
A documentação detalhada das interfaces e tipos está disponível em pkg.go.dev/github.com/ESousa97/go-cli-toolkit.
O sistema utiliza o arquivo config.yaml para persistir preferências do usuário.
| Chave | Descrição | Tipo | Padrão |
|---|---|---|---|
hosts |
Lista de URLs favoritas para o comando ping | []string |
[] |
Acompanhe a evolução do projeto e as etapas de maturidade atingidas:
- Fase 1: Fundação — Estrutura Cobra + primeiro comando
ping. - Fase 2: Manipulação de Dados — Subcomando
format jsoncom suporte a stdin. - Fase 3: Performance — Refatoração para concorrência (Goroutines/Channels).
- Fase 5: Governança e Documentação (Completo)
- Suite de doc profissional (README, CONTRIBUTING, LICENSE).
- Documentação Godoc (100% de cobertura nos exports).
- Implementação de GitHub Actions (CI) e Badges de Qualidade.
Interessado em ajudar? Veja nosso CONTRIBUTING.md para detalhes sobre o processo de Pull Request e padrões de código.
Este projeto está licenciado sob a MIT License — veja o arquivo LICENSE para detalhes.
