Back-end
CLI
Programação
Tutoriais Técnicos
Aplicações robustas com Go, Automação com CLIs, Biblioteca Cobra, CLI com Golang e Cobra, Comandos em linha de comando, Criar aplicações CLI com Golang, Desenvolvimento de CLIs, Desenvolvimento eficiente com Golang, Ferramentas CLI, Golang e produtividade, Golang para desenvolvedores, Integração com Cobra CLI, Linha de comando e Golang, Programação prática em Go, Tutorial de Golang
Dev Glaubin
0 Comentários
Como Criar Aplicações CLI com Golang e Cobra: Guia Definitivo
Ah, criar aplicações CLI com Golang… Porque quem quer interface bonitinha quando você pode resolver tudo com uma linha de comando, não é mesmo? Se você é daquele tipo de dev que ama a simplicidade brutal e quer fazer coisas rápido e sem frescura, tá no lugar certo. Cola aqui que o Glaubin vai te mostrar como fazer isso com estilo e uns toques de sarcasmo.
Por que criar aplicações CLI com Golang?
Primeiro, vamos ser sinceros: CLIs são pra quem gosta de controle. Não tem “próximo, próximo, finalizar”, e sim escreve o comando certo ou chora. E por que usar Golang? Porque ele é rápido, objetivo e tão simples que até parece coisa de outro mundo. E com a biblioteca Cobra, você pode fazer uma CLI digna de respeito em minutos.
Cobra: A chave para criar aplicações CLI com Golang
Não, não é a cobra do zoológico. Cobra é uma biblioteca escrita em Go para criar CLIs. Ela pega na sua mão, te dá todas as ferramentas e ainda organiza seu código. Parece bom demais para ser verdade? Bem-vindo ao mundo da programação decente.
Bora Meter a Mão na Massa?
1. Configurando o Ambiente
Antes de tudo, certifique-se que você tem Go instalado. Se não tem, você está perdoado… por enquanto. Vai no site oficial do Go e resolve isso. Depois, crie seu projeto e inicialize o Go Modules:
mkdir minha-cli
cd minha-cli
go mod init github.com/seuuser/minha-cli
Agora, instale a biblioteca Cobra. É tipo botar pimenta na comida: essencial.
go get -u github.com/spf13/cobra@latest
go get -u github.com/spf13/cobra/cobra@latest
2. Estruturando seu projeto para criar aplicações CLI com Golang
Aqui vai a parte que é pura mágica. Vamos criar a base do nosso CLI:
cobra init --pkg-name github.com/seuuser/minha-cli
Isso gera uma estrutura de diretórios tão organizada que você vai até esquecer o caos do seu código legado:
.
├── cmd/
│ └── root.go
└── main.go
Abra o arquivo cmd/root.go
e personalize. Algo assim:
var rootCmd = &cobra.Command{
Use: "minha-cli",
Short: "Uma CLI poderosa com Go e Cobra",
Long: `Esta é uma aplicação de linha de comando criada em Go. Nada de firula, só eficiência.`,
}
- Melhor Linguagem de Programação 2025: Explorando as Opções para sua Carreira em Tecnologia
- Hidratação no Front-End: O que é e como ela resolve problemas de SSR e CSR
- Como Sair de Pleno para Senior em 2025: O Guia Definitivo Sem Ficar Batendo Cabeça
- Guia Definitivo: Como e Quando Usar find e findIndex no JavaScript
- Diferença entre every e some no JavaScript: O Guia Definitivo para Quem Já Quebrou a Cabeça com Arrays
- Testes Unitários no Angular: Chega de Código Porco
3. Adicionando comandos ao criar aplicações CLI com Golang
Agora vamos criar um comando chamado http
para subir um servidor web. Rode:
cobra add http
Isso cria o arquivo cmd/http.go
. Edite assim:
package cmd
import (
"fmt"
"github.com/spf13/cobra"
"net/http"
)
var port string
var httpCmd = &cobra.Command{
Use: "http",
Short: "Sobe um servidor HTTP",
Run: func(cmd *cobra.Command, args []string) {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Servidor rodando de boas! Bora trabalhar.")
})
fmt.Printf("Servidor rodando na porta %s\n", port)
http.ListenAndServe(":"+port, nil)
},
}
func init() {
rootCmd.AddCommand(httpCmd)
httpCmd.Flags().StringVarP(&port, "port", "p", "8080", "Porta para o servidor")
}
É isso aí. Nós configuramos um parâmetro --port
para definir a porta do servidor. Agora, você tem controle até sobre onde ele vai rodar. Pés no chão, né?
4. Testando a CLI
Roda o comando e confere:
go run main.go http --port 9090
Depois, dá um curl ou abre no navegador:
curl localhost:9090
Se aparecer “Servidor rodando de boas! Bora trabalhar.”, pode se considerar um sucesso.
5. Criando um Comando de Cálculo
Porque somar no código é mais divertido que abrir a calculadora. Crie o comando calc
:
cobra add calc
Edite cmd/calc.go
assim:
package cmd
import (
"fmt"
"github.com/spf13/cobra"
"strconv"
)
var a, b float64
var calcCmd = &cobra.Command{
Use: "calc",
Short: "Realiza a soma de dois números",
Run: func(cmd *cobra.Command, args []string) {
result := a + b
fmt.Printf("A soma de %.2f e %.2f é %.2f\n", a, b, result)
},
}
func init() {
rootCmd.AddCommand(calcCmd)
calcCmd.Flags().Float64VarP(&a, "a", "x", 0, "Primeiro número")
calcCmd.Flags().Float64VarP(&b, "b", "y", 0, "Segundo número")
}
Agora teste:
go run main.go calc -x 10 -y 20
Se retornar algo tipo “A soma de 10.00 e 20.00 é 30.00”, você fez tudo certo.
Conclusão
E aí está. Você agora sabe criar aplicações CLI com Golang como um(a) verdadeiro(a) ninja dos terminais. Nada de frescura, nada de interface gráfica, só o que importa: eficiência e funcionalidade. Agora, vai lá e crie sua própria ferramenta que todo mundo vai querer clonar no GitHub. Só não esquece de me dar os créditos, beleza?
Angular performance Angular Signals Apps Multiplataforma automação de tarefas Backend Boas Práticas boas práticas Git controle de versão desenvolvedores desenvolvimento backend Desenvolvimento de Software Desenvolvimento Frontend Desenvolvimento Mobile Desenvolvimento Web desenvolvimento ágil devops dicas para devs escalabilidade ferramentas de Git ferramentas de programação Front-end Git Hooks integração contínua inteligência artificial JavaScript Linguagens de Programação Media Queries mercado de tecnologia Mercado de Trabalho Tech Node.js produtividade dev Programação Programação Orientada a Objetos programação para iniciantes programação reativa Python React React Suspense Rust Tecnologia Trunk-Based Development web development workflow Git workflows Git
Publicar comentário