Cobra est une bibliothèque permettant de créer de puissantes applications CLI modernes.
Cobra est utilisé dans de nombreux projets Go tels que Kubernetes, Hugo et GitHub CLI pour n'en nommer que quelques-uns. Cette liste contient une liste plus complète de projets utilisant Cobra.
Cobra est une bibliothèque fournissant une interface simple pour créer de puissantes interfaces CLI modernes similaires aux outils git & go.
Cobra fournit :
CLI simples basées sur des sous-commandes : app server
, app fetch
, etc.
Indicateurs entièrement conformes à POSIX (y compris les versions courtes et longues)
Sous-commandes imbriquées
Drapeaux mondiaux, locaux et en cascade
Suggestions intelligentes ( app srver
... vouliez-vous dire app server
?)
Génération automatique d'aide pour les commandes et les indicateurs
Aide au regroupement des sous-commandes
Reconnaissance automatique des indicateurs d'aide de -h
, --help
, etc.
Complétion automatique du shell générée automatiquement pour votre application (bash, zsh, fish, powershell)
Pages de manuel générées automatiquement pour votre application
Alias de commande pour que vous puissiez changer les choses sans les casser
La flexibilité de définir votre propre aide, utilisation, etc.
Intégration transparente en option avec Viper pour les applications à 12 facteurs
Cobra est construit sur une structure de commandes, d'arguments et de drapeaux.
Les commandes représentent des actions, les arguments sont des choses et les drapeaux sont des modificateurs pour ces actions.
Les meilleures applications se lisent comme des phrases lorsqu’elles sont utilisées et, par conséquent, les utilisateurs savent intuitivement comment interagir avec elles.
Le modèle à suivre est APPNAME VERB NOUN --ADJECTIVE
ou APPNAME COMMAND ARG --FLAG
.
Quelques bons exemples concrets pourraient mieux illustrer ce point.
Dans l'exemple suivant, « serveur » est une commande et « port » est un indicateur :
hugo server --port=1313
Dans cette commande, nous disons à Git de cloner l'URL nue.
git clone URL --bare
La commande est le point central de l'application. Chaque interaction prise en charge par l'application sera contenue dans une commande. Une commande peut avoir des commandes enfants et éventuellement exécuter une action.
Dans l'exemple ci-dessus, « serveur » est la commande.
En savoir plus sur cobra.Command
Un indicateur est un moyen de modifier le comportement d'une commande. Cobra prend en charge les indicateurs entièrement conformes à POSIX ainsi que le package d'indicateurs Go. Une commande Cobra peut définir des indicateurs qui persistent jusqu'aux commandes enfants et des indicateurs qui ne sont disponibles que pour cette commande.
Dans l'exemple ci-dessus, « port » est le drapeau.
La fonctionnalité Flag est fournie par la bibliothèque pflag, un fork de la bibliothèque standard flag qui conserve la même interface tout en ajoutant la conformité POSIX.
Utiliser Cobra est simple. Tout d’abord, utilisez go get
pour installer la dernière version de la bibliothèque.
go get -u github.com/spf13/cobra@latest
Ensuite, incluez Cobra dans votre candidature :
importer "github.com/spf13/cobra"
cobra-cli
est un programme en ligne de commande permettant de générer des applications et des fichiers de commandes Cobra. Il amorcera votre échafaudage d’applications pour développer rapidement une application basée sur Cobra. C'est le moyen le plus simple d'incorporer Cobra dans votre application.
Il peut être installé en exécutant :
go install github.com/spf13/cobra-cli@latest
Pour plus de détails sur l'utilisation du générateur Cobra-CLI, veuillez lire le fichier README du générateur Cobra.
Pour plus de détails sur l'utilisation de la bibliothèque Cobra, veuillez lire le guide de l'utilisateur Cobra.
Cobra est publié sous la licence Apache 2.0. Voir LICENSE.txt