Cobra es una biblioteca para crear potentes aplicaciones CLI modernas.
Cobra se utiliza en muchos proyectos de Go, como Kubernetes, Hugo y GitHub CLI, por nombrar algunos. Esta lista contiene una lista más extensa de proyectos que utilizan Cobra.
Cobra es una biblioteca que proporciona una interfaz sencilla para crear potentes interfaces CLI modernas similares a las herramientas git & go.
Cobra proporciona:
CLI sencillas basadas en subcomandos: app server
, app fetch
, etc.
Banderas totalmente compatibles con POSIX (incluidas versiones cortas y largas)
Subcomandos anidados
Banderas globales, locales y en cascada
Sugerencias inteligentes ( app srver
... ¿te refieres app server
?)
Generación automática de ayuda para comandos y banderas.
Ayuda para agrupar subcomandos
Reconocimiento automático de indicadores de ayuda de -h
, --help
, etc.
Autocompletado de shell generado automáticamente para su aplicación (bash, zsh, fish, powershell)
Páginas de manual generadas automáticamente para su aplicación
Alias de comando para que puedas cambiar cosas sin romperlas
La flexibilidad de definir su propia ayuda, uso, etc.
Integración perfecta opcional con viper para aplicaciones de 12 factores
Cobra se basa en una estructura de comandos, argumentos y banderas.
Los comandos representan acciones, los argumentos son cosas y las banderas son modificadores de esas acciones.
Las mejores aplicaciones se leen como oraciones cuando se usan y, como resultado, los usuarios saben intuitivamente cómo interactuar con ellas.
El patrón a seguir es APPNAME VERB NOUN --ADJECTIVE
o APPNAME COMMAND ARG --FLAG
.
Algunos buenos ejemplos del mundo real pueden ilustrar mejor este punto.
En el siguiente ejemplo, 'servidor' es un comando y 'puerto' es una bandera:
hugo server --port=1313
En este comando le decimos a Git que clone la URL desnuda.
git clone URL --bare
El comando es el punto central de la aplicación. Cada interacción que admita la aplicación estará contenida en un Comando. Un comando puede tener comandos secundarios y, opcionalmente, ejecutar una acción.
En el ejemplo anterior, "servidor" es el comando.
Más sobre cobra.Command
Una bandera es una forma de modificar el comportamiento de un comando. Cobra admite banderas totalmente compatibles con POSIX, así como el paquete de banderas Go. Un comando Cobra puede definir indicadores que persisten hasta los comandos secundarios y indicadores que solo están disponibles para ese comando.
En el ejemplo anterior, "puerto" es la bandera.
La funcionalidad de bandera la proporciona la biblioteca pflag, una bifurcación de la biblioteca estándar de banderas que mantiene la misma interfaz al tiempo que agrega compatibilidad con POSIX.
Usar Cobra es fácil. Primero, use go get
para instalar la última versión de la biblioteca.
go get -u github.com/spf13/cobra@latest
A continuación, incluya Cobra en su aplicación:
importar "github.com/spf13/cobra"
cobra-cli
es un programa de línea de comandos para generar aplicaciones cobra y archivos de comandos. Arrancará el andamiaje de su aplicación para desarrollar rápidamente una aplicación basada en Cobra. Es la forma más sencilla de incorporar Cobra a su aplicación.
Se puede instalar ejecutando:
go install github.com/spf13/cobra-cli@latest
Para obtener detalles completos sobre el uso del generador Cobra-CLI, lea el archivo README del generador Cobra.
Para obtener detalles completos sobre el uso de la biblioteca Cobra, lea la Guía del usuario de Cobra.
Cobra se lanza bajo la licencia Apache 2.0. Ver LICENCIA.txt