Komut Satırı Arayüzleri (CLI’ler), Grafik Kullanıcı Arayüzleri (GUI’ler) ve bunların etkileşimli görsel bileşenleri karşısında bile hala popülerdir. CLI’ler, basitlikleri, kolaylıkları, hızları ve bir CLI uygulaması kurmak için gereken daha az kaynak nedeniyle hala kullanılmaktadır.

Sonraki CLI Uygulamanız için Go Paketleri

Çoğu CLI uygulaması, işletim sisteminin terminalinde veya komut satırında çalışır ve GUI’ler kadar kaynak gerektirmeden esnekliği artırır.

Python’dan C++, Rust ve Go’ya kadar popüler dillerle CLI’ler oluşturabilirsiniz. Çoğu dil, harici bağımlılıklar olmadan CLI uygulamaları oluşturmak için paketler sağlar.

Go ve Komut Satırı Uygulamaları

Go programlama dili için amaçlanan kullanım durumlarından biri, performanslı etkileşimli CLI’ler oluşturmaktır. Go, yıllar içinde sahada çekiş kazandı.

Go, Docker CLI, Hugo, GitHub CLI ve daha fazlası gibi popüler CLI uygulamalarına güç sağlar. Go, performansının yanı sıra birinci sınıf desteği göz önüne alındığında, CLI uygulamaları oluşturmak için tercih edilen dillerden biridir.

Kullanım örnekleri sayfasına git

Komut satırı ayrıştırma için bir bayrak paketi var, ancak modern komut satırı uygulamaları oluşturmak için ihtiyaç duyacağınız çok fazla işlevsellikten yoksun. Ayrıca, uygulamanızın boyutu arttıkça ve siz daha fazla özellik eklediğinizden , bayrak paketiyle CLI uygulamaları geliştirmek karmaşık olabilir.

Go ekosisteminde, geliştirme sürenizi kısaltmanıza yardımcı olacak özelliklerle birlikte CLI’ler oluşturmak için birçok saygın paket bulunur.

Kobra Paketi

Cobra , Go ekosisteminde ve ötesinde CLI’ler oluşturmak için en popüler paketlerden biridir. Cobra, herhangi bir ortamda etkileşimli, modern CLI uygulamaları oluşturmaya yönelik bir pakettir.

Cobra, Go araçlarına ve Git’e benzer endüstri standardı CLI’ler oluşturmak için basit bir arayüz sağlar. Cobra, Docker, Kubernetes, Twitch, Hugo ve diğerleri dahil olmak üzere etkileşimde bulunduğunuz birçok CLI uygulamasına güç sağlar.

Cobra, kullanımı kolay, alt komut tabanlı bir araçtır. POSIX uyumlu bayrakları, iç içe alt komutları ve genel, yerel ve basamaklı bayrakları destekler.

Cobra ayrıca akıllı önerileri, otomatik yardım oluşturmayı, bayrak tanımayı ve komut takma adlarını da destekler. Bash, Powershell, Fish ve Zsh’de kabuk otomatik tamamlamaya ve 12 faktörlü uygulamalar için engerek paketi ile entegrasyona izin verir.

Cobra paketinin ve bağımlılıklarının en son sürümünü yüklemek için çalışma dizininizin terminalinde bu komutu çalıştırın.

go get -u github.com/spf13/cobra@latest

Cobra, daha hızlı ve daha kolay geliştirme için bir CLI uygulaması sağlar. Cobra—cli paketi, uygulamanıza sorunsuzca yeni komutlar eklemek için yapılandırabileceğiniz ortak kod oluşturur.

Cobra-cli paketinin en son sürümünü yüklemek için çalışma dizininizin terminalinde bu komutu çalıştırın.

go install github.com/spf13/cobra-cli@latest

Cobra oluşturucuyu (Cobra-cli) ve diğer Go komut satırı araçlarını kullanmak için GOPATH değişkeninizi çalışma dizininize ayarlamanız gerekir.

Başarılı bir kurulumdan sonra projenizde bir Cobra uygulamasını init komutuyla başlatabilirsiniz.

cobra-cli init

Bir Cobra uygulamasını başlattıktan sonra, Cobra uygulamanıza yeni bir komut oluşturmak ve eklemek için add alt komutunu cobra-cli komutuyla birlikte kullanabilirsiniz.

Sonraki CLI Uygulamanız için Go Paketleri

cobra-cli add newCommand

Komut, komut için ihtiyacınız olan kodla yeni bir dosya oluşturur. Dosyayı işleminize göre düzenleyebilirsiniz.

İşte Cobra-cli komutuyla oluşturulan bir komut için basit bir komut işleyici işlevi.

import (

    “fmt”

    “github.com/spf13/cobra”

    “log”

    “strconv”

)

// a cobra-generated command

// newCmd represents the new command

var newCmd = &cobra.Command {

    Use:   “newCmd”,

    Short: “The newCmd description you specify”,

    Long: `A longer description that spans multiple lines and likely contains examples

and usage of using your command. For example:

Cobra is a CLI library for Go that empowers applications.

This application is a tool to generate the needed files

to quickly create a Cobra application.`,

    Run: func(cmd *cobra.Command, args []string) {

        if len(args) < 1 {

            log.Fatal(“No additional Arguments”)

        }

        arguments := args[0]

        fmt.Println(arguments)

    }

}

func init() {

    rootCmd.AddCommand(newCmd)

    // Here you will define your flags and configuration settings.

    // Cobra supports Persistent Flags which will work for this command

    // and all subcommands, e.g.:

    // newCmd.PersistentFlags().String(“foo”, “”, “A help for foo”)

    // Cobra supports local flags which will only run when this command

    // is called directly, e.g.:

    // newCmd.Flags().BoolP(“toggle”, “t”, false, “Help message for toggle”)

}

Fonksiyonun args argümanı ile ek argümanlara erişebilirsiniz . Yukarıdaki işlev , terminalden ek bir argüman olup olmadığını kontrol etmek için if ifadesini kullanır ve argümanı yazdırır.

CLi paketi Github Önizlemesi

Cli paketi , Go’da hızlı, dağıtılabilir CLI uygulamaları oluşturmak için ifade temalı minimalist bir pakettir.

Cli paketi, kategorilere sahip komut satırı bağımsız değişkenlerini, bayrakları ve alt komutları destekler. Kısa seçenekler, Bash tamamlamaları , oluşturulan yardım ve sürüm oluşturma işlevlerine sahiptir.

Cli paketi, Go’nun yerleşik bayrak ve bağlam paketleriyle birlikte çalışabilir ve bayrak paketindeki özelliklerin çoğunu Cli ile kullanabilirsiniz.

Graphql-go paketini ve bağımlılıklarını projenize eklemek için bu komutları çalışma dizininizin terminalinde çalıştırın.

go get github.com/urfave/cli

Cli paketiyle CLI uygulamanıza nasıl komut ekleyebileceğiniz aşağıda açıklanmıştır.

package main

import (

    “fmt”

    “log”

    “os”

    “github.com/urfave/cli/v2”

)

func main() {

    app := &cli.App {

        Name:  “new”,

        Usage: “make a new command with the Cli package”,

        Action: func(*cli.Context) error {

            fmt.Println(“Here’s a new command”)

            return nil

        },

    }

    if err := app.Run(os.Args); err != nil {

        log.Fatal(err)

    }

}

Ana işlevde, uygulama değişkeni bir Cli uygulamasının bir örneğidir ve uygulamanın Eylem alanı, uygulamanın işleyici işlevidir. Burada, yeni komut, işlevdeki metni yazdırır veya uygulamadan herhangi bir hata varsa bir hata döndürür.

Cli paketi, fazla karmaşıklığı veya özelliği olmayan daha küçük projeler için faydalıdır.

Go-arg Github Önizlemesi

Sonraki CLI Uygulamanız için Go Paketleri

Go-arg paketi , Go’da CLI bağımsız değişkenlerini ayrıştırmak için yapı tabanlı bir pakettir. Go-arg paketiyle, CLI argümanları için yapılar bildirebilir ve argümanlar üzerinde normal Go veri yapıları olarak işlem yapabilirsiniz. Go-arg paketi, gerekli bağımsız değişkenleri, konumsal bağımsız değişkenleri, ortam değişkenlerini, kullanım dizelerini, varsayılan değerleri ve diğer birçok özelliği sağlar.

Paket tamsayı, kayan nokta, dize ve boolean gibi temel türleri destekler. Ayrıca URL’ler, süreler, e-posta adresleri, MAC adresleri , işaretçiler, dilimler, haritalar ve herhangi bir tür gibi daha karmaşık türleri de destekler .

Go-arg paketini paketinizin bağımlılıklarına eklemek için get komutunu kullanabilirsiniz .

go get github.com/alexflint/go-arg

Go-arg paketinin kullanımı basit ve sezgiseldir. Komut satırından bağımsız değişkenleri nasıl kabul edebileceğiniz ve bunları komut satırı konsoluna nasıl yazdırabileceğiniz aşağıda açıklanmıştır.

func main() {

    var args struct {

        Foo string

        Bar bool

    }

    arg.MustParse(&args)

    fmt.Println(args.Foo, args.Bar)

}

args yapısı , CLI uygulamasının yapı örneğidir. MustParse yöntemi, komut satırındaki argümanları struct örneğine ayrıştırır .

Run komutu ile programı kolayca çalıştırabilir ve dosya adından sonra argümanları belirtebilirsiniz.

go run main.go  –foo=hello –bar

Yürütülebilir dosyayı çalıştırmadan ve bağımsız değişkenleri belirtmeden önce uygulamanızı yürütülebilir bir dosyada oluşturmak için build komutunu da kullanabilirsiniz .

go build main.go

./main –foo=hello –bar

GUI’ler ve CLI’ler Arasında Göz önünde bulundurmanız Gereken Önemli Farklar Vardır

Geliştirme sırasında, kullanıcılarınız için bir CLI veya GUI oluşturma arasında seçim yapmanız gerekiyorsa, seçim yapmak için birçok faktörü göz önünde bulundurmanız gerekir.

GUI’ler üzerinden CLI’lerin kullanılması daha hızlı programlar, kolay otomasyon ve daha düşük kaynak kullanımı ile sonuçlanır. Bu avantajlardan herhangi biri uygulamanız için çok önemli değilse, genel kullanıcılar arasında daha popüler oldukları için bir GUI ile daha iyi durumda olabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir