Komandinės eilutės sąsajos (CLI) vis dar populiarios net naudojant grafines vartotojo sąsajas (GUI) ir jų interaktyvius vaizdo komponentus. CLI vis dar naudojamos dėl jų paprastumo, lengvumo, greičio ir mažiau išteklių, reikalingų CLI programai nustatyti.
Dauguma CLI programų veikia operacinės sistemos terminale arba komandinėje eilutėje, todėl padidėja lankstumas, nereikalaujant tiek daug išteklių, kiek GUI.
Galite kurti CLI su populiariomis kalbomis nuo Python iki C++, Rust ir Go. Daugumoje kalbų pateikiami paketai, skirti kurti CLI programas be išorinių priklausomybių.
Eiti ir komandinės eilutės programos
Vienas iš numatytų Go programavimo kalbos naudojimo atvejų yra našių interaktyvių CLI kūrimas. Bėgant metams „Go“ šioje srityje įgijo trauką.
„Go“ veikia populiariomis CLI programomis, tokiomis kaip „Docker CLI“, „Hugo“, „GitHub CLI“ ir kt. „Go“ yra viena iš pageidaujamų kalbų kuriant CLI programas, atsižvelgiant į aukščiausios klasės jų palaikymą ir našumą.
Ten yra vėliava paketas, skirtas analizuoti komandų eilutę, tačiau jame trūksta daug funkcijų, kurių prireiks kuriant modernias komandų eilutės programas. Be to, kuriant CLI programas su
vėliava paketas gali būti sudėtingas, nes jūsų programos dydis didėja ir įtrauksite daugiau funkcijų.„Go“ ekosistemoje yra daug geros reputacijos paketų, skirtų CLI kurti, su funkcijomis, padedančiomis sumažinti kūrimo laiką.
Kobros paketas
Kobra yra vienas populiariausių paketų, skirtų kurti CLI Go ekosistemoje ir už jos ribų. Cobra yra paketas, skirtas kurti interaktyvias, modernias CLI programėles bet kurioje aplinkoje.
„Cobra“ suteikia paprastą sąsają pramonės standarto CLI kūrimui, panašiam į „Go Tools“ ir „Git“. „Cobra“ suteikia galimybę naudotis daugeliu CLI programų, su kuriomis bendravote, įskaitant „Docker“, „Kubernetes“, „Twitch“, „Hugo“ ir daugybę kitų.
„Cobra“ yra paprastas naudoti, antrinėmis komandomis pagrįstas įrankis. Jis palaiko su POSIX suderinamas vėliavėles, įdėtas subkomandas ir visuotines, vietines ir pakopines vėliavėles.
„Cobra“ taip pat palaiko protingus pasiūlymus, automatinį pagalbos generavimą, vėliavėlių atpažinimą ir komandų slapyvardžius. Tai leidžia automatiškai užbaigti apvalkalą „Bash“, „Powershell“, „Fish“ ir „Zsh“ bei integruoti su angis 12 faktorių programėlių paketas.
Paleiskite šią komandą savo darbo katalogo terminale, kad įdiegtumėte naujausią Cobra paketo versiją ir jo priklausomybes.
eik get -u github.com/spf13/cobra@latest
„Cobra“ teikia CLI programą, kad būtų galima greičiau ir lengviau kurti. „Cobra-cli“ paketas generuoja pagrindinį kodą, kurį galite sukonfigūruoti, kad be vargo pridėtumėte naujų komandų į programą.
Paleiskite šią komandą savo darbo katalogo terminale, kad įdiegtumėte naujausią „Cobra-cli“ paketo versiją.
eik įdiekite github.com/spf13/cobra-cli@latest
Turėsite nustatyti GOPATH kintamąjį savo darbo kataloge, kad galėtumėte naudoti Cobra generatorių (Cobra-cli) ir kitus Go komandinės eilutės įrankius.
Sėkmingai įdiegę, galite inicijuoti „Cobra“ programą savo projekte naudodami init komandą.
kobra-kli init
Inicijuoję „Cobra“ programą galite naudoti papildyti subkomandą su kobra-klis komandą, kad sukurtumėte ir pridėtumėte naują komandą prie savo „Cobra“ programos.
cobra-cli pridėti naują komandą
Komanda sukuria naują failą su kodu, kurio reikia komandai. Galite redaguoti failą pagal savo veiklą.
Štai paprasta komandų tvarkyklės funkcija, skirta komandai, sugeneruotai naudojant „Cobra-cli“ komandą.
importuoti (
"fmt"
"github.com/spf13/cobra"
"rąstas"
"strconv"
)// kobros sukurta komanda
// newCmd reiškia naują komandą
var newCmd = &kobra. Komanda {
Naudokite: "newCmd",
Trumpai: „Jūsų nurodytas naujas Cmd aprašas“,
Ilgai: „Ilgesnis aprašas, apimantis kelias eilutes ir kuriame tikriausiai yra pavyzdžių
ir jūsų komandos naudojimą. Pavyzdžiui:
Cobra yra CLI biblioteka dėl Eikite, kuris įgalina programas.
Ši programa yra reikalingas failų generavimo įrankis
greitai sukurti Cobra programą.`,Vykdyti: func(cmd *kobra. Komanda, args []styga) {
jeigulen(args) < 1 {
žurnalas. Fatališkas („Jokių papildomų argumentų“)
}
argumentai := args[0]
fmt. Println (argumentai)
}
}funcinit() {
rootCmd. AddCommand (newCmd)// Čia nustatysite vėliavėles ir konfigūracijos nustatymus.
// Cobra palaiko nuolatines vėliavėles, kurios veiks šiai komandai
// ir visos subkomandos, pvz.:
// newCmd. PersistentFlags().String("foo", "", "Pagalba foo")
// Cobra palaiko vietines vėliavėles, kurios veiks tik tada, kai ši komanda
// vadinamas tiesiogiai, pvz.:
// newCmd. Flags().BoolP("toggle", "t", false, "Pagalbos pranešimas perjungimui")
}
Papildomus argumentus galite pasiekti naudodami args funkcijos argumentas. Aukščiau pateikta funkcija naudoja jeigu teiginį, kad patikrintų, ar terminale nėra papildomo argumento, ir išspausdina argumentą.
CLI paketas
Cli paketas yra išraiškingumo tematikos minimalistinis paketas, skirtas greitai, platinamų CLI programėlių kūrimui Go.
Cli paketas palaiko komandinės eilutės argumentus, vėliavėles ir subkomandas su kategorijomis. Jis turi funkcionalumą, leidžiantį patenkinti trumpas parinktis, Bash užbaigimai, sugeneruota pagalba ir versijų kūrimas.
„Cli“ paketas yra suderinamas su „Go“ įtaisytuoju vėliava ir kontekste paketus, ir jūs galite naudoti daugumą funkcijų vėliava paketas su Cli.
Vykdykite šias komandas savo darbo katalogo terminale, kad pridėtumėte Graphql-go paketą ir jo priklausomybes prie projekto.
eik Gaukite github.com/urfave/cli
Štai kaip galite pridėti komandą prie CLI programos naudodami Cli paketą.
paketą pagrindinis
importuoti (
"fmt"
"rąstas"
"os""github.com/urfave/cli/v2"
)funcpagrindinis() {
programa := &cli. App {
Vardas: "naujas",
Naudojimas: "padaryti a naujas komandą su Cli paketą",
Veiksmas: func(*kli. kontekstas)klaida {
fmt. Println („Štai a naujas komanda“)
grąžintinulis
},
}
jeigu klaida := programa. Vykdyti (os. Args); klysta! = nulis {
žurnalas. Mirtinas (klysta)
}
}
Viduje pagrindinis funkcija, programėlė kintamasis yra Cli programos ir programos pavyzdys Veiksmas laukas yra programos tvarkyklės funkcija. Čia, naujas komanda išspausdintų funkcijos tekstą arba grąžintų klaidą, jei programoje būtų klaidų.
„Cli“ paketas yra naudingas mažesniems projektams, neturintiems daug sudėtingumo ar funkcijų.
„Go-Arg“ paketas
„Go-arg“ paketas yra struktūrinis paketas, skirtas analizuoti CLI argumentus Go. Su Go-arg paketu galite deklaruoti CLI argumentų struktūras ir naudoti argumentus kaip įprastas Go duomenų struktūras. „Go-arg“ pakete pateikiami būtini argumentai, padėties argumentai, aplinkos kintamieji, naudojimo eilutės, numatytosios reikšmės ir daug kitų funkcijų.
Paketas palaiko pagrindinius tipus, tokius kaip sveikasis skaičius, slankusis kablelis, eilutė ir loginė vertė. Ji taip pat palaiko sudėtingesnius tipus, pvz., URL, laiko trukmę, el. pašto adresus, MAC adresai, rodyklės, skiltelės, žemėlapiai ir bet koks tipo.
Galite naudoti gauti komandą, kad pridėtumėte „Go-arg“ paketą prie paketo priklausomybių.
eik gauti github.com/alexflint/eik- arg
„Go-arg“ paketas yra paprastas ir intuityvus naudoti. Štai kaip galite priimti argumentus iš komandinės eilutės ir atspausdinti juos komandų eilutės pulte.
funcpagrindinis() {
var args struktūra {
Foo styga
Baras bool
}
arg. MustParse (&argumentai)
fmt. Println (args. Foo, args. baras)
}
The args struct yra CLI programos struct egzempliorius. The MustParse metodas analizuoja argumentus iš komandinės eilutės į struct egzempliorių.
Galite lengvai paleisti programą naudodami paleisti komandą ir nurodykite argumentus po failo pavadinimo.
eik paleisti pagrindinį.eik --foo=labas --baras
Taip pat galite naudoti statyti komandą, kad sukurtumėte programą į vykdomąjį failą prieš paleisdami vykdomąjį failą ir nurodydami argumentus.
eik statyti pagrindinį.eik
./main --foo=hello --bar
Turite atsižvelgti į reikšmingus GUI ir CLI skirtumus
Jei kurdami turite pasirinkti, ar sukurti CLI arba GUI savo vartotojams, norėdami pasirinkti, turėsite atsižvelgti į daugelį veiksnių.
Naudojant CLI, o ne grafines sąsajas, programas galima greičiau, lengviau automatizuoti ir sunaudoja mažiau išteklių. Jei kuris nors iš šių pranašumų nėra labai svarbus jūsų programai, jums gali būti geriau naudoti GUI, nes jie populiaresni tarp paprastų vartotojų.