Rozhrania príkazového riadka (CLI) sú stále populárne aj napriek grafickým používateľským rozhraniam (GUI) a ich interaktívnym vizuálnym komponentom. CLI sa stále používajú kvôli ich jednoduchosti, jednoduchosti, rýchlosti a menšiemu počtu zdrojov potrebných na nastavenie aplikácie CLI.
Väčšina aplikácií CLI beží na termináli alebo príkazovom riadku operačného systému, čo zvyšuje flexibilitu bez toho, aby vyžadovalo toľko zdrojov ako GUI.
Môžete vytvárať CLI s populárnymi jazykmi od Pythonu po C++, Rust a Go. Väčšina jazykov poskytuje balíky na vytváranie aplikácií CLI bez externých závislostí.
Go a aplikácie príkazového riadka
Jedným zo zamýšľaných prípadov použitia programovacieho jazyka Go je vytváranie výkonných interaktívnych CLI. Go sa v priebehu rokov presadil v tejto oblasti.
Go poháňa obľúbené aplikácie CLI, ako sú Docker CLI, Hugo, GitHub CLI a ďalšie. Go je jedným z preferovaných jazykov na vytváranie aplikácií CLI, vzhľadom na jeho prvotriednu podporu a výkon.
Existuje a vlajka balík na analýzu príkazového riadka, ale chýba mu veľa funkcií, ktoré budete potrebovať na vytvorenie moderných aplikácií príkazového riadka. Tiež vývoj aplikácií CLI s
vlajka Balík môže byť zložitý, pretože veľkosť vašej aplikácie sa zvyšuje a vy začleňujete viac funkcií.Ekosystém Go má mnoho renomovaných balíkov na vytváranie CLI s funkciami, ktoré vám pomôžu skrátiť čas potrebný na vývoj.
Balíček Cobra
Cobra je jedným z najpopulárnejších balíkov na vytváranie CLI v ekosystéme Go a mimo neho. Cobra je balík na vytváranie interaktívnych, moderných aplikácií CLI v akomkoľvek prostredí.
Cobra poskytuje jednoduché rozhranie na vytváranie CLI priemyselného štandardu, podobne ako nástroje Go a Git. Cobra poháňa mnoho aplikácií CLI, s ktorými ste interagovali, vrátane Docker, Kubernetes, Twitch, Hugo a mnohých ďalších.
Cobra je ľahko použiteľný nástroj založený na podpríkazoch. Podporuje príznaky kompatibilné s POSIX, vnorené podpríkazy a globálne, lokálne a kaskádové príznaky.
Cobra tiež podporuje inteligentné návrhy, automatické generovanie pomoci, rozpoznávanie príznakov a aliasov príkazov. Umožňuje automatické dopĺňanie shellu na Bash, Powershell, Fish a Zsh a integráciu s zmija balík pre 12-faktorové aplikácie.
Spustite tento príkaz v termináli vášho pracovného adresára a nainštalujte najnovšiu verziu balíka Cobra a jeho závislostí.
ísť get -u github.com/spf13/cobra@latest
Cobra poskytuje aplikáciu CLI pre rýchlejší a jednoduchší vývoj. Balík Cobra—cli generuje štandardný kód, ktorý môžete nakonfigurovať na pridávanie nových príkazov do vašej aplikácie bez problémov.
Ak chcete nainštalovať najnovšiu verziu balíka Cobra-cli, spustite tento príkaz v termináli vášho pracovného adresára.
ísť nainštalujte github.com/spf13/cobra-cli@latest
Ak chcete používať generátor Cobra (Cobra-cli) a ďalšie nástroje príkazového riadka Go, musíte nastaviť premennú GOPATH do svojho pracovného adresára.
Po úspešnej inštalácii môžete inicializovať aplikáciu Cobra vo svojom projekte pomocou init príkaz.
cobra-cli init
Po inicializácii aplikácie Cobra môžete použiť pridať čiastkový príkaz s kobra-cli príkaz na vytvorenie a pridanie nového príkazu do aplikácie Cobra.
cobra-cli pridať nový príkaz
Príkaz vytvorí nový súbor s kódom, ktorý potrebujete pre príkaz. Súbor môžete upraviť na základe vašej operácie.
Tu je jednoduchá funkcia obsluhy príkazov pre príkaz generovaný pomocou príkazu Cobra-cli.
importovať (
"fmt"
"github.com/spf13/cobra"
"log"
"strconv"
)// príkaz vygenerovaný kobrou
// newCmd predstavuje nový príkaz
var newCmd = &cobra. príkaz {
Použite: "newCmd",
Skratka: "Nový popisCmd, ktorý určíte",
Dlhé: „Dlhší popis, ktorý zahŕňa viacero riadkov a pravdepodobne obsahuje príklady
a použitie vášho príkazu. Napríklad:
Cobra je knižnica CLI pre Choďte, ktoré posilňujú aplikácie.
Táto aplikácia je nástroj na generovanie potrebných súborov
na rýchle vytvorenie aplikácie Cobra.`,Spustiť: func(cmd *kobra. Príkaz, argumenty []reťazec) {
aklen(args) < 1 {
log. Fatálne („Žiadne ďalšie argumenty“)
}
argumenty := argumenty[0]
fmt. Println (argumenty)
}
}funcinit() {
rootCmd. AddCommand (newCmd)// Tu zadefinujete svoje príznaky a konfiguračné nastavenia.
// Cobra podporuje trvalé príznaky, ktoré budú fungovať pre tento príkaz
// a všetky čiastkové príkazy, napr.:
// newCmd. PersistentFlags().String("foo", "", "A help for foo")
// Cobra podporuje lokálne príznaky, ktoré sa spustia iba pri tomto príkaze
// sa volá priamo, napr.:
// newCmd. Flags().BoolP("toggle", "t", false, "Správa pomocníka pre prepínanie")
}
K ďalším argumentom môžete pristupovať pomocou args argument funkcie. Vyššie uvedená funkcia využíva ak príkaz, aby skontroloval, či z terminálu nie je ďalší argument, a vypíše argument.
Balík CLI
Balík Cli je minimalistický balík s tematikou expresivity na vytváranie rýchlych a distribuovateľných aplikácií CLI v Go.
Balík Cli podporuje argumenty príkazového riadka, príznaky a čiastkové príkazy s kategóriami. Má funkcie, ktoré uspokoja krátke možnosti, Bash dokončenia, generovanú pomoc a vytváranie verzií.
Balík Cli je interoperabilný so vstavaným zariadením Go vlajka a kontext a môžete využívať väčšinu funkcií v vlajka balík s Cli.
Spustite tieto príkazy v termináli vášho pracovného adresára a pridajte balík Graphql-go a jeho závislosti do vášho projektu.
ísť získajte github.com/urfave/cli
Tu je návod, ako môžete do aplikácie CLI pridať príkaz pomocou balíka Cli.
balík Hlavná
importovať (
"fmt"
"log"
"os""github.com/urfave/cli/v2"
)funcHlavná() {
app := &cli. Aplikácia {
Názov: "Nový",
Použitie: "urobiť a Nový príkaz s Cli balík",
Akcia: func(*cli. Kontext)chyba {
fmt. Println("Tu je a Nový príkaz")
vrátiťnula
},
}
ak chyba := aplikácia. Spustiť (os. Args); chyba!= nula {
log. fatálne (chyba)
}
}
V Hlavná funkcia, aplikácie premenná je inštanciou aplikácie Cli a aplikácie Akcia pole je funkcia obsluhy aplikácie. Tu, Nový príkaz vytlačí text z funkcie alebo vráti chybu, ak sa v aplikácii vyskytnú nejaké chyby.
Balík Cli je užitočný pre menšie projekty bez väčšej zložitosti alebo funkcií.
Balíček Go-Arg
Balík Go-arg je balík založený na štruktúre na analýzu argumentov CLI v Go. Pomocou balíka Go-arg môžete deklarovať štruktúry pre argumenty CLI a pracovať s argumentmi ako s bežnými dátovými štruktúrami Go. Balík Go-arg poskytuje požadované argumenty, pozičné argumenty, premenné prostredia, reťazce použitia, predvolené hodnoty a mnoho ďalších funkcií.
Balík podporuje základné typy, ako je celé číslo, s pohyblivou rádovou čiarkou, reťazec a boolean. Podporuje aj zložitejšie typy, ako sú adresy URL, trvanie času, e-mailové adresy, MAC adresy, ukazovatele, rezy, mapy atď akýkoľvek typu.
Môžete použiť dostať príkaz na pridanie balíka Go-arg do závislostí vášho balíka.
ísť získať github.com/alexflint/ísť-arg
Balík Go-arg sa používa jednoducho a intuitívne. Tu je návod, ako môžete prijať argumenty z príkazového riadka a vytlačiť ich do konzoly príkazového riadka.
funcHlavná() {
var args štrukturovať {
Foo reťazec
Bar bool
}
arg. MustParse(&args)
fmt. Println (arg. Foo, args. bar)
}
The args struct je inštancia štruktúry pre aplikáciu CLI. The MustParse metóda analyzuje argumenty z príkazového riadku do inštancie struct.
Program môžete ľahko spustiť pomocou behať a zadajte argumenty za názvom súboru.
ísť bežať hlavné.ísť --foo=ahoj --bar
Môžete tiež použiť stavať príkaz na zostavenie vašej aplikácie do spustiteľného súboru pred spustením spustiteľného súboru a zadaním argumentov.
ísť postaviť hlavné.ísť
./main --foo=ahoj --bar
Existujú významné rozdiely medzi GUI a CLI, ktoré budete musieť zvážiť
Ak si počas vývoja musíte vybrať medzi vytvorením CLI alebo GUI pre svojich používateľov, budete musieť pri výbere zvážiť veľa faktorov.
Použitie CLI cez GUI má za následok rýchlejšie programy, jednoduchú automatizáciu a nižšie využitie zdrojov. Ak niektorá z týchto výhod nie je pre vašu aplikáciu rozhodujúca, možno by ste na tom boli lepšie s GUI, pretože sú obľúbenejšie u bežných používateľov.