À propos du projet
Cobra est une bibliothèque permettant de créer des applications CLI puissantes et modernes en Go. Elle fournit une interface simple pour créer des interfaces en ligne de commande similaires à celles des outils git et go, et est utilisée par des projets tels que Kubernetes, Hugo et GitHub CLI.
Capacités clés décrites dans le README :
- CLI basée sur des sous-commandes facile à utiliser, telle que `app server` et `app fetch`
- Drapeaux entièrement conformes POSIX, incluant les versions courtes et longues
- Sous-commandes imbriquées
- Drapeaux globaux, locaux et en cascade
- Suggestions intelligentes pour les commandes mal tapées (par exemple, suggérer `app server` pour `app srver`)
- Génération automatique d'aide pour les commandes et les drapeaux
- Regroupement de l'aide pour les sous-commandes
- Reconnaissance automatique des drapeaux d'aide tels que `-h` et `--help`
- Autocomplétion shell générée automatiquement pour bash, zsh, fish et powershell
- Génération automatique de pages de manuel
- Alias de commandes
- Flexibilité pour définir une aide et une sortie d'utilisation personnalisées
- Intégration optionnelle avec viper pour les applications 12 facteurs
Cobra est construit autour des commandes, des arguments et des drapeaux. Les commandes représentent des actions, les args sont des choses, et les drapeaux modifient ces actions. Le modèle recommandé est `APPNAME VERB NOUN --ADJECTIVE` ou `APPNAME COMMAND ARG --FLAG`.
L'installation se fait avec `go get -u github.com/spf13/cobra@latest`, puis en important `github.com/spf13/cobra`. Un outil compagnon, `cobra-cli`, peut être installé avec `go install github.com/spf13/cobra-cli@latest` afin de générer le squelette de l'application et les fichiers de commandes.
La fonctionnalité des drapeaux est fournie par la bibliothèque pflag, un fork du package drapeau standard de Go qui ajoute la conformité POSIX tout en conservant la même interface. Cobra est publié sous licence Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.