Об этом проекте
Cobra — библиотека для создания мощных современных CLI-приложений на Go. Она предоставляет простой интерфейс для построения интерфейсов командной строки, аналогичных git и инструментам Go, и используется в таких проектах, как Kubernetes, Hugo и GitHub CLI.
Ключевые возможности:
- Простое создание субкомандных CLI, например `app server` и `app fetch`
- Полностью POSIX-совместимые флаги, включая краткие и полные версии
- Вложенные субкоманды
- Глобальные, локальные и каскадные флаги
- Умные подсказки для командам с опечатками (например, предложение `app server` вместо `app srver`)
- Автоматическая генерация помощи для команд и флагов
- Группировка справки по субкомандам
- Автоматическое распознавание флагов помощи, таких как `-h` и `--help`
- Автоматически генерируемое завершение оболочек для bash, zsh, fish и powershell
- Автоматически генерируемые man-страницы
- Алиасы команд
- Возможность настройки пользовательского вывода помощи и использования
- Опциональная интеграция с viper для 12-factor приложений
Cobra строится вокруг команд, аргументов и флагов. Команды представляют действия, аргументы — объекты, а флаги изменяют эти действия. Рекомендуемый шаблон: `APPNAME VERB NOUN --ADJECTIVE` или `APPNAME COMMAND ARG --FLAG`.
Установка выполняется через `go get -u github.com/spf13/cobra@latest`, затем импортируется `github.com/spf13/cobra`. Сопутствующий инструмент `cobra-cli` можно установить с помощью `go install github.com/spf13/cobra-cli@latest` для генерации шаблонов приложения и файлов команд.
Функциональность флагов обеспечивается библиотекой pflag — форком стандартного пакета flags Go, который добавляет совместимость с POSIX, сохраняя тот же интерфейс. Cobra распространяется под лицензией Apache 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.