Rozhraní příkazového řádku (CLI) jsou stále oblíbená tváří v tvář grafickým uživatelským rozhraním (GUI) a jejich interaktivním vizuálním komponentám. CLI se stále používají kvůli jejich jednoduchosti, snadnosti, rychlosti a menšímu počtu zdrojů potřebných k nastavení aplikace CLI.

Většina aplikací CLI běží na terminálu nebo příkazovém řádku operačního systému, což zvyšuje flexibilitu, aniž by vyžadovalo tolik prostředků jako GUI.

Můžete vytvářet CLI s populárními jazyky od Pythonu po C++, Rust a Go. Většina jazyků poskytuje balíčky pro vytváření aplikací CLI bez externích závislostí.

Go a aplikace příkazového řádku

Jedním ze zamýšlených případů použití programovacího jazyka Go je vytváření výkonných interaktivních rozhraní CLI. V průběhu let se Go v oboru prosadilo.

Go pohání oblíbené aplikace CLI, jako je Docker CLI, Hugo, GitHub CLI a další. Go je jedním z preferovaných jazyků pro vytváření aplikací CLI, vzhledem k jeho prvotřídní podpoře a výkonu.

Je tu vlajka balíček pro analýzu příkazového řádku, ale postrádá mnoho funkcí, které budete potřebovat k vytváření moderních aplikací příkazového řádku. Také vývoj aplikací CLI s

instagram viewer
vlajka balíček může být složitý, protože velikost vaší aplikace se zvětšuje a vy začleňujete více funkcí.

Ekosystém Go má mnoho renomovaných balíčků pro vytváření CLI s funkcemi, které vám pomohou zkrátit dobu vývoje.

Balíček Cobra

Kobra je jedním z nejoblíbenějších balíčků pro vytváření CLI v ekosystému Go i mimo něj. Cobra je balíček pro vytváření interaktivních, moderních aplikací CLI v jakémkoli prostředí.

Cobra poskytuje jednoduché rozhraní pro vytváření CLI průmyslového standardu, podobně jako nástroje Go a Git. Cobra pohání mnoho aplikací CLI, se kterými jste interagovali, včetně Docker, Kubernetes, Twitch, Hugo a řady dalších.

Cobra je snadno použitelný nástroj založený na dílčích příkazech. Podporuje příznaky vyhovující standardu POSIX, vnořené dílčí příkazy a globální, místní a kaskádové příznaky.

Cobra také podporuje inteligentní návrhy, automatické generování nápovědy, rozpoznávání příznaků a aliasy příkazů. Umožňuje automatické dokončování shellu na Bash, Powershell, Fish a Zsh a integraci s zmije balíček pro 12faktorové aplikace.

Spusťte tento příkaz v terminálu svého pracovního adresáře a nainstalujte nejnovější verzi balíčku Cobra a jeho závislostí.

jít get -u github.com/spf13/cobra@latest

Cobra poskytuje aplikaci CLI pro rychlejší a snadnější vývoj. Balíček Cobra—cli generuje standardní kód, který můžete nakonfigurovat tak, aby do aplikace bez problémů přidával nové příkazy.

Spusťte tento příkaz v terminálu svého pracovního adresáře a nainstalujte nejnovější verzi balíčku Cobra-cli.

jít nainstalujte github.com/spf13/cobra-cli@latest

Abyste mohli používat generátor Cobra (Cobra-cli) a další nástroje příkazového řádku Go, budete muset nastavit proměnnou GOPATH do svého pracovního adresáře.

Po úspěšné instalaci můžete inicializovat aplikaci Cobra ve svém projektu pomocí init příkaz.

cobra-cli init

Po inicializaci aplikace Cobra můžete použít přidat dílčí příkaz s kobra-cli příkaz k vytvoření a přidání nového příkazu do aplikace Cobra.

cobra-cli add newCommand

Příkaz vytvoří nový soubor s kódem, který potřebujete pro příkaz. Soubor můžete upravit na základě vaší operace.

Zde je jednoduchá funkce obsluhy příkazů pro příkaz generovaný pomocí příkazu Cobra-cli.

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

// příkaz vygenerovaný kobrou

// newCmd představuje nový příkaz
var newCmd = &cobra. Příkaz {
Použijte: "newCmd",
Krátký: "Popis novéhoCmd, který určíte",
Dlouho: `Delší popis, který zahrnuje více řádků a pravděpodobně obsahuje příklady
a použití vašeho příkazu. Například:
Cobra je knihovna CLI pro Go, který umožňuje aplikacím.
Tato aplikace je nástroj pro generování potřebných souborů
pro rychlé vytvoření aplikace Cobra.`,

Běh: func(cmd *kobra. Příkaz, args []tětiva) {
-lilen(args) < 1 {
log. Fatální ("Žádné další argumenty")
}
argumenty := argumenty[0]
fmt. Println (argumenty)
}
}

funcinit() {
rootCmd. AddCommand (novýCmd)

// Zde definujete své příznaky a nastavení konfigurace.

// Cobra podporuje trvalé příznaky, které budou fungovat pro tento příkaz
// a všechny dílčí příkazy, např.:
// newCmd. PersistentFlags().String("foo", "", "Nápověda pro foo")

// Cobra podporuje místní příznaky, které se spustí pouze při tomto příkazu
// se volá přímo, např.:
// newCmd. Flags().BoolP("toggle", "t", false, "Hlášení nápovědy pro přepínání")
}

K dalším argumentům můžete přistupovat pomocí argumenty argument funkce. Výše uvedená funkce využívá -li příkaz pro kontrolu, zda z terminálu existuje další argument, a vypíše argument.

Balíček CLI

Balíček Cli je minimalistický balíček s tematikou expresivity pro vytváření rychlých a distribuovatelných aplikací CLI v Go.

Balíček Cli podporuje argumenty příkazového řádku, příznaky a dílčí příkazy s kategoriemi. Má funkcionalitu pro krátké možnosti, Dokončení Bash, generovanou nápovědu a verzování.

Balíček Cli je interoperabilní s vestavěným Go vlajka a kontext balíčky a můžete používat většinu funkcí v vlajka balíček s Cli.

Spusťte tyto příkazy v terminálu vašeho pracovního adresáře a přidejte balíček Graphql-go a jeho závislosti do vašeho projektu.

jít získejte github.com/urfave/cli

Zde je návod, jak můžete přidat příkaz do aplikace CLI pomocí balíčku Cli.

balík hlavní

import (
"fmt"
"log"
"os"

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

funchlavní() {
aplikace := &cli. Aplikace {
Název: "Nový",
Použití: "udělat A Nový příkaz s Cli balík",
Akce: func(*cli. Kontext)chyba {
fmt. Println("Tady je a Nový příkaz")
vrátit senula
},
}

-li chyba := aplikace. Spustit (os. Args); chyba!= nula {
log. fatální (chyba)
}
}

V hlavní funkce, aplikace proměnná je instancí aplikace Cli a aplikace Akce pole je funkce obsluhy aplikace. Tady, Nový příkaz vytiskne text z funkce nebo vrátí chybu, pokud se vyskytnou nějaké chyby z aplikace.

Balíček Cli je užitečný pro menší projekty bez větší složitosti nebo funkcí.

Balíček Go-Arg

Balíček Go-arg je balíček založený na strukturách pro analýzu argumentů CLI v Go. S balíčkem Go-arg můžete deklarovat struktury pro argumenty CLI a pracovat s argumenty jako s běžnými datovými strukturami Go. Balíček Go-arg poskytuje požadované argumenty, poziční argumenty, proměnné prostředí, řetězce použití, výchozí hodnoty a mnoho dalších funkcí.

Balíček podporuje základní typy jako integer, floating point, string a boolean. Podporuje také složitější typy, jako jsou adresy URL, doby trvání, e-mailové adresy, MAC adresy, ukazatele, řezy, mapy a další žádný typ.

Můžete použít dostat příkaz k přidání balíčku Go-arg do závislostí vašeho balíčku.

jít získat github.com/alexflint/jít-arg

Balíček Go-arg se používá jednoduše a intuitivně. Zde je návod, jak můžete přijmout argumenty z příkazového řádku a vytisknout je do konzoly příkazového řádku.

funchlavní() {
var argumenty strukturovat {
Foo tětiva
Bar bool
}
arg. MustParse(&args)
fmt. Println (arg. Foo, args. Bar)
}

The argumenty struct je instance struktury pro aplikaci CLI. The MustParse metoda analyzuje argumenty z příkazového řádku do instance struct.

Program můžete snadno spustit pomocí běh a zadejte argumenty za názvem souboru.

jít spustit hlavní.jít --foo=ahoj --bar

Můžete také použít stavět příkaz k sestavení vaší aplikace do spustitelného souboru před spuštěním spustitelného souboru a zadáním argumentů.


jít postavit hlavní.jít
./main --foo=ahoj --bar

Mezi GUI a CLI jsou značné rozdíly, které budete muset zvážit

Pokud si během vývoje musíte vybrat mezi vytvořením rozhraní CLI nebo GUI pro své uživatele, budete muset při výběru zvážit mnoho faktorů.

Použití CLI přes GUI vede k rychlejším programům, snadné automatizaci a nižšímu využití zdrojů. Pokud některá z těchto výhod není pro vaši aplikaci zásadní, možná byste na tom byli lépe s GUI, protože jsou populárnější u běžných uživatelů.