Cobra é uma biblioteca para a criação de aplicativos CLI modernos e poderosos.
Cobra é usado em muitos projetos Go, como Kubernetes, Hugo e GitHub CLI, para citar alguns. Esta lista contém uma lista mais extensa de projetos usando Cobra.
Cobra é uma biblioteca que fornece uma interface simples para criar interfaces CLI modernas e poderosas, semelhantes às ferramentas git & go.
Cobra fornece:
CLIs fáceis baseadas em subcomandos: app server
, app fetch
, etc.
Sinalizadores totalmente compatíveis com POSIX (incluindo versões curtas e longas)
Subcomandos aninhados
Sinalizadores globais, locais e em cascata
Sugestões inteligentes ( app srver
... você quis dizer app server
?)
Geração automática de ajuda para comandos e sinalizadores
Agrupando ajuda para subcomandos
Reconhecimento automático do sinalizador de ajuda de -h
, --help
, etc.
Preenchimento automático de shell gerado automaticamente para seu aplicativo (bash, zsh, fish, powershell)
Páginas de manual geradas automaticamente para seu aplicativo
Aliases de comando para que você possa alterar as coisas sem quebrá-las
A flexibilidade para definir sua própria ajuda, uso, etc.
Integração perfeita opcional com o Viper para aplicativos de 12 fatores
O Cobra é construído sobre uma estrutura de comandos, argumentos e sinalizadores.
Comandos representam ações, Args são coisas e Flags são modificadores para essas ações.
Os melhores aplicativos são lidos como frases quando usados e, como resultado, os usuários sabem intuitivamente como interagir com eles.
O padrão a seguir é APPNAME VERB NOUN --ADJECTIVE
ou APPNAME COMMAND ARG --FLAG
.
Alguns bons exemplos do mundo real podem ilustrar melhor este ponto.
No exemplo a seguir, 'servidor' é um comando e 'porta' é um sinalizador:
hugo server --port=1313
Neste comando estamos dizendo ao Git para clonar a url.
git clone URL --bare
O comando é o ponto central da aplicação. Cada interação suportada pelo aplicativo estará contida em um Comando. Um comando pode ter comandos filhos e, opcionalmente, executar uma ação.
No exemplo acima, 'servidor' é o comando.
Mais sobre cobra.Command
Um sinalizador é uma forma de modificar o comportamento de um comando. Cobra suporta sinalizadores totalmente compatíveis com POSIX, bem como o pacote de sinalizadores Go. Um comando Cobra pode definir sinalizadores que persistem até os comandos filhos e sinalizadores que estão disponíveis apenas para esse comando.
No exemplo acima, 'porta' é a bandeira.
A funcionalidade de flag é fornecida pela biblioteca pflag, uma bifurcação da biblioteca padrão de flag que mantém a mesma interface enquanto adiciona conformidade com POSIX.
Usar o Cobra é fácil. Primeiro, use go get
para instalar a versão mais recente da biblioteca.
go get -u github.com/spf13/cobra@latest
A seguir, inclua o Cobra em sua aplicação:
importar "github.com/spf13/cobra"
cobra-cli
é um programa de linha de comando para gerar aplicativos cobra e arquivos de comando. Ele inicializará a estrutura do seu aplicativo para desenvolver rapidamente um aplicativo baseado em Cobra. É a maneira mais fácil de incorporar o Cobra em sua aplicação.
Ele pode ser instalado executando:
go install github.com/spf13/cobra-cli@latest
Para obter detalhes completos sobre como usar o gerador Cobra-CLI, leia o README do Gerador Cobra
Para obter detalhes completos sobre como usar a biblioteca Cobra, leia o Guia do usuário Cobra.
Cobra é lançado sob a licença Apache 2.0. Consulte LICENSE.txt