Fundamentos do Cobra
Comando raiz, Run, Args e geração de ajuda
Fundamentos do Cobra é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
O que é o Cobra?
Cobra é a biblioteca Go mais popular para criar aplicações CLI. Ela fornece comandos, sinalizadores, subcomandos, geração de ajuda, conclusão do shell e validação de argumentos.
Instalando o Cobra
Adicione o cobra como dependência e, opcionalmente, use o gerador de CLI:
go get github.com/spf13/cobra
// Optional: cobra-cli for scaffolding
go install github.com/spf13/cobra-cli@latest
cobra-cli init myappComando raiz
Toda aplicação Cobra tem um comando raiz. Defina-o com Use, uma descrição Short e uma função Run:
var rootCmd = &cobra.Command{
Use: "myapp",
Short: "My awesome CLI",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Hello from root!")
},
}
func main() { rootCmd.Execute() }Estrutura cobra.Command
Campos principais: Use (nome e sinopse do comando), Short (descrição de uma linha), Long (ajuda detalhada), Run (executa o comando), RunE (retorna um erro).
RunE para propagação de erros
Use RunE em vez de Run para retornar erros. O Cobra imprime o erro e encerra automaticamente com um código diferente de zero.
var rootCmd = &cobra.Command{
RunE: func(cmd *cobra.Command, args []string) error {
return doWork()
},
}Adicionando subcomandos
Crie subcomandos como valores cobra.Command separados e adicione-os ao comando raiz com AddCommand:
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the server",
RunE: runServe,
}
func init() { rootCmd.AddCommand(serveCmd) }Estrutura de um projeto Cobra
Organização convencional: diretório cmd/ com um arquivo por subcomando, além de root.go. main.go apenas chama cmd.Execute().
cmd/
root.go // rootCmd definition
serve.go // serveCmd
migrate.go // migrateCmd
main.goValidação de argumentos
Use validadores integrados como cobra.ExactArgs, MinimumNArgs ou uma ValidArgsFunction personalizada:
var cmd = &cobra.Command{
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) error {
fmt.Println(args[0], args[1])
return nil
},
}Ajuda gerada automaticamente
O Cobra gera --help / -h para cada comando e também um subcomando help automaticamente. O texto vem de Use, Short, Long e dos sinalizadores.
Conclusão do shell
O Cobra gera, pronto para uso, scripts de conclusão para bash, zsh, fish e PowerShell por meio de rootCmd.GenBashCompletion ou do subcomando integrado completion.
Integração com Viper
Combine Cobra com Viper para gerenciar a configuração: os sinalizadores definidos com o Cobra são vinculados às chaves do Viper, para que os valores possam vir de sinalizadores, variáveis de ambiente ou arquivos de configuração.
Verificação rápida
Qual é a diferença entre cobra.Command.Run e RunE?
Recapitulação: fundamentos do Cobra
Pontos principais:
- cobra.Command com Use/Short/RunE é o bloco de construção principal
- rootCmd.AddCommand(subCmd) para comandos hierárquicos
- cobra.ExactArgs/MinimumNArgs para validação de argumentos
- A ajuda e a conclusão são geradas automaticamente
Perguntas Frequentes
A aula “Fundamentos do Cobra” é grátis?
Sim — o texto completo de “Fundamentos do Cobra” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Fundamentos do Cobra”?
Comando raiz, Run, Args e geração de ajuda Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Fundamentos do Cobra”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos do Cobra
- Flags e flags persistentes
- Subcomandos e grupos de comandos
- Distribuindo ferramentas de CLI