Об этом проекте

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.