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!