Golang ile CLI Uygulaması Geliştirmek

Selam!

Golang ile bir CLI uygulaması oluşturmak aslında oldukça basit, bu nedenle de uzun uzun yazmak yerine kodlarla ilerleyeceğim.

Öncelikle projemizi oluşturalım:

$ mkdir my-cli && cd my-cli
$ go mod init my-cli

Ardından, bir CLI uygulaması oluşturmamıza yardımcı olacak olaran Cobra adında ki bir kütüphaneyi kuralım.

$ go get -u github.com/spf13/cobra/cobra

Önceden vermek istediğim bir bilgi varki ilerleyen süreçte karışıklık olmasın.Uygulamamızın dosya dizini şu şekilde görünecek:

.
├── cmd
│   ├── root.go
│   ├── version.go
│   └── ...
├── go.mod
├── go.sum
└── main.go

Bunu da söyledikten sonra ilk CLI komutumuzu main.go dosyamıza ekleyelim.

var rootCmd = &cobra.Command{
      Use: "spotify-go-client",
      Run: func(cmd *cobra.Command, args []string) {
          fmt.Println("Hello CLI")
      },
   }

func main() {
    if err := rootCmd.Execute(); err != nil {
        fmt.Println(err.Error())
    }
}

Buraya kadar geldiğinize göre artık uygulamamızı test edebiliriz:

$ go run main.go
Hello CLI

Bir örnek daha aşağıda vereceğim:

var versionCmd = &cobra.Command{
   Use:     "version",
   Short:   "Get CLI version",
   Example: "spotify-go-client version",
   Aliases: []string{"v"},
   Run: func(cmd *cobra.Command, args []string) {
      fmt.Println("1.0.0")
   },
}

func init() {
   rootCmd.AddCommand(versionCmd)
}

 

Buradan daha fazla örnek koda ulaşabilir ve benim kodlarımla da oynayabilirsiniz: https://github.com/ufukguler/spotify-go-cli

Hoşçakalın!

More Reading

Post navigation