Kommandolinjegrænseflader (CLI'er) er stadig populære, selv i lyset af grafiske brugergrænseflader (GUI'er) og deres interaktive visuelle komponenter. CLI'er er stadig i brug på grund af deres enkelhed, lethed, hastighed og færre ressourcer, der kræves for at konfigurere en CLI-applikation.

De fleste CLI-apps kører på operativsystemets terminal eller kommandolinje, hvilket øger fleksibiliteten uden at kræve så mange ressourcer som GUI'er.

Du kan bygge CLI'er med populære sprog fra Python til C++, Rust og Go. De fleste sprog leverer pakker til at bygge CLI-apps uden eksterne afhængigheder.

Gå og kommandolinjeapplikationer

Et af de tilsigtede anvendelsesmuligheder for Go-programmeringssproget er at bygge effektive interaktive CLI'er. Gennem årene har Go vundet indpas på området.

Go driver populære CLI-applikationer som Docker CLI, Hugo, GitHub CLI og mere. Go er et af de foretrukne sprog til at bygge CLI-apps, givet dens førsteklasses support til dem sammen med dets ydeevne.

Der er en flag pakke til kommandolinjeparsing, men den mangler meget funktionalitet, du skal bruge for at bygge moderne kommandolinje-apps. Også udvikling af CLI-apps med

instagram viewer
flag pakken kan være kompleks, efterhånden som størrelsen af ​​din app øges, og du inkorporerer flere funktioner.

Go-økosystemet har mange velrenommerede pakker til at bygge CLI'er med funktioner, der hjælper med at reducere din udviklingstid.

Cobra-pakken

Cobra er en af ​​de mest populære pakker til at bygge CLI'er i Go-økosystemet og videre. Cobra er en pakke til at skabe interaktive, moderne CLI-apps i ethvert miljø.

Cobra giver en enkel grænseflade til at bygge CLI'er af industristandard svarende til Go-værktøjer og Git. Cobra driver mange CLI-applikationer, du har interageret med, inklusive Docker, Kubernetes, Twitch, Hugo og en lang række andre.

Cobra er et letanvendeligt, underkommando-baseret værktøj. Det understøtter POSIX-kompatible flag, indlejrede underkommandoer og globale, lokale og overlappende flag.

Cobra understøtter også intelligente forslag, automatisk hjælpegenerering, flaggenkendelse og kommandoaliasser. Det giver mulighed for shell-autofuldførelse på Bash, Powershell, Fish og Zsh og integration med hugorm pakke til 12-faktor apps.

Kør denne kommando i terminalen i dit arbejdsbibliotek for at installere den seneste version af Cobra-pakken og dens afhængigheder.

 få -u github.com/spf13/cobra@latest

Cobra leverer en CLI-app til hurtigere og nemmere udvikling. Cobra—cli-pakken genererer kedelkode, som du kan konfigurere til at tilføje nye kommandoer til din app uden besvær.

Kør denne kommando i terminalen i dit arbejdsbibliotek for at installere den seneste version af Cobra-cli-pakken.

 installer github.com/spf13/cobra-cli@latest

Du skal indstille din GOPATH-variabel til din arbejdsmappe for at bruge Cobra-generatoren (Cobra-cli) og andre Go-kommandolinjeværktøjer.

Efter en vellykket installation kan du initialisere en Cobra-app i dit projekt med i det kommando.

cobra-cli init

Efter initialisering af en Cobra-app, kan du bruge tilføje underkommando med cobra-cli kommando for at oprette og tilføje en ny kommando til din Cobra-app.

cobra-cli tilføj ny kommando

Kommandoen opretter en ny fil med den kode, du skal bruge til kommandoen. Du kan redigere filen baseret på din handling.

Her er en simpel kommandohåndteringsfunktion til en kommando genereret med Cobra-cli-kommandoen.

importere (
"fmt"
"github.com/spf13/cobra"
"log"
"strconv"
)

// en cobra-genereret kommando

// newCmd repræsenterer den nye kommando
var newCmd = &cobra. Kommando {
Brug: "newCmd",
Kort: "Den nye Cmd-beskrivelse du angiver",
Lang: `En længere beskrivelse, der strækker sig over flere linjer og sandsynligvis indeholder eksempler
og brugen af ​​at bruge din kommando. For eksempel:
Cobra er et CLI-bibliotek til Go, der styrker applikationer.
Denne applikation er et værktøj til at generere de nødvendige filer
for hurtigt at oprette en Cobra-applikation.`,

Løb: func(cmd *kobra. Kommando, args []snor) {
hvislen(args) < 1 {
log. Fatal ("Ingen yderligere argumenter")
}
argumenter := args[0]
fmt. Println (argumenter)
}
}

funci det() {
rootCmd. Tilføj kommando (nyCmd)

// Her vil du definere dine flag og konfigurationsindstillinger.

// Cobra understøtter persistente flag, som vil fungere for denne kommando
// og alle underkommandoer, f.eks.:
// nyCmd. PersistentFlags().String("foo", "", "En hjælp til foo")

// Cobra understøtter lokale flag, som kun kører, når denne kommando
// kaldes direkte, f.eks.:
// nyCmd. Flags().BoolP("toggle", "t", false, "Hjælp besked til skifte")
}

Du kan få adgang til yderligere argumenter med args argumentet for funktionen. Funktionen ovenfor bruger hvis sætning for at kontrollere, om der er et ekstra argument fra terminalen og udskriver argumentet.

CLI-pakken

Cli-pakken er en minimalistisk pakke med udtryksevne-tema til at bygge hurtige, distribuerbare CLI-apps i Go.

Cli-pakken understøtter kommandolinjeargumenter, flag og underkommandoer med kategorier. Den har funktionalitet til at tage højde for korte muligheder, Bash-afslutninger, genereret hjælp og versionering.

Cli-pakken er interoperabel med Go's indbyggede flag og sammenhæng pakker, og du kan bruge de fleste af funktionerne i flag pakke med Cli.

Kør disse kommandoer i terminalen i dit arbejdsbibliotek for at tilføje Graphql-go-pakken og dens afhængigheder til dit projekt.

 få github.com/urfave/cli

Sådan kan du tilføje en kommando til din CLI-app med Cli-pakken.

pakke vigtigste

importere (
"fmt"
"log"
"os"

"github.com/urfave/cli/v2"
)

funcvigtigste() {
app := &cli. App {
Navn: "ny",
Brug: "lave -en ny kommando med Cli pakke",
Handling: func(*cli. Sammenhæng)fejl {
fmt. Println("Her er en ny kommando")
Vend tilbagenul
},
}

hvis fejl := app. Kør (os. Args); fejl!= nul {
log. Fatal (fejl)
}
}

I den vigtigste funktion, den app variabel er en forekomst af en Cli-app og applikationens Handling felt er appens handlerfunktion. Her, den ny kommando ville udskrive teksten fra funktionen eller returnere en fejl, hvis der er nogen fejl fra appen.

Cli-pakken er nyttig til mindre projekter uden meget kompleksitet eller funktioner.

Go-Arg-pakken

Go-arg-pakken er en struktur-baseret pakke til at parse CLI-argumenter i Go. Med Go-arg-pakken kan du deklarere structs for CLI-argumenter og operere på argumenterne som almindelige Go-datastrukturer. Go-arg-pakken indeholder nødvendige argumenter, positionsargumenter, miljøvariabler, brugsstrenge, standardværdier og mange andre funktioner.

Pakken understøtter grundlæggende typer som heltal, flydende komma, streng og boolean. Det understøtter også mere komplekse typer som URL'er, tidsvarigheder, e-mail-adresser, MAC-adresser, pointere, udsnit, kort og de nogen type.

Du kan bruge kommando for at tilføje Go-arg-pakken til din pakkes afhængigheder.

 få github.com/alexflint/-arg

Go-arg-pakken er enkel og intuitiv at bruge. Sådan kan du acceptere argumenter fra kommandolinjen og udskrive dem til kommandolinjekonsollen.

funcvigtigste() {
var args struktur {
Foo snor
Bar bool
}
arg. MustParse(&args)
fmt. Println (args. Foo, args. Bar)
}

Det args struct er struct-instansen for CLI-applikationen. Det MustParse metoden analyserer argumenterne fra kommandolinjen til struct-forekomsten.

Du kan nemt køre programmet med løb kommando og angiv argumenterne efter filnavnet.

 køre hoved. --foo=hej --bar

Du kan også bruge bygge kommando til at bygge din app ind i en eksekverbar, før du kører den eksekverbare og specificerer argumenterne.


bygge hoved.
./main --foo=hej --bar

Der er betydelige forskelle mellem GUI'er og CLI'er, du skal overveje

Hvis du under udviklingen skal vælge mellem at bygge en CLI eller GUI til dine brugere, skal du overveje mange faktorer for at træffe et valg.

Brug af CLI'er over GUI'er resulterer i hurtigere programmer, nem automatisering og lavere ressourceudnyttelse. Hvis nogen af ​​disse fordele ikke er afgørende for din applikation, er du måske bedre stillet med en GUI, da de er mere populære blandt almindelige brugere.