yanpiing

Yan.ts

Posted on May 24, 2022

Cobra CLI no GO

Introdução

Diferente do node onde o projeto já inicia com a CLI do npm e já tem a parte de scripts no package.json . Os projetos em GO precisam de algum adaptador de CLI externa para escrever scripts, hoje aprendi como usar a Cobra CLI para isso

Como usar o Cobra

Primeiro é preciso instalar o Cobra CLI

  go get -u github.com/spf13/cobra@latest && \
  go install github.com/spf13/cobra-cli@latest
Enter fullscreen mode Exit fullscreen mode

Agora rodando

  cobra-cli init
Enter fullscreen mode Exit fullscreen mode

ele vai gerar um arquivo main.go e uma pasta cmd com um arquivo root.go onde ele configura algumas coisas. Nesse arquivo root podemos fazer alguma inicializações também, por exemplo no meu caso de estudo inicializei o banco de dados no root.go

Image description

Para criar o nosso proprio comando precisamos rodar o

  cobra-cli add NOME-DO-COMANDO
Enter fullscreen mode Exit fullscreen mode

e então o cobra vai gerar um novo arquivo com o nome do comando que foi passado a pra ele

Image description

Nesse exemplo da imagem coloquei como nome como cli e ele gera o arquivo com essas informações de descrição basicamente que podem ser alteradas a vontade

 go run main.go NOME-DO-COMANDO
Enter fullscreen mode Exit fullscreen mode

Vai rodar o comando que acabamos de criar, nesse caso ele vai apenas exibir NOME-DO-COMANDO called pois ainda não estamos fazendo nada no arquivo gerado. Então nesse arquivo preciso declarar as variáveis que minha função precisa.
Image description

Na função gerada init eu crio as flags que meu comando pode receber e associo cada valor da flag a cada variável, então por exemplo, se eu rodar o comando

  go run main.go cli -action=create -product=Produto -price=25.0
Enter fullscreen mode Exit fullscreen mode

eu estou atribuindo o valor para as variáveis action, productName e productPrice e a partir dai posso fazer o que quiser com eles, nesse caso passo para a função Run para que ela crie um novo produto

💖 💪 🙅 🚩
yanpiing
Yan.ts

Posted on May 24, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Cobra CLI no GO
go Cobra CLI no GO

May 24, 2022

Ponteiros em GO
go Ponteiros em GO

May 20, 2022