Cobra — это мощная библиотека и инструмент в Golang, который используется для создания приложений CLI (интерфейса командной строки). Cobra делает это, предоставляя инструменты, которые автоматизируют процесс и предоставляют ключевые абстракции, повышающие производительность труда разработчиков.
Почему использовать Cobra?
Среди множества преимуществ использования Cobra следует учитывать следующие:
- Легко создавать интерфейсы командной строки на основе подкоманд и использовать вложенные подкоманды.
- Автоматическое создание справки для команд и флагов.
- Повышенная производительность благодаря таким командам, как
cobra init appname
&cobra add cmdname
. - Полезные, интеллектуальные предложения (
app srver
… вы имели в видусервер приложений
?).
Установка
Чтобы использовать Cobra, вам нужно использовать go get
, чтобы установить последнюю версию версия библиотеки. Эта команда установит исполняемый файл генератора cobra
вместе с библиотекой и ее зависимостями:
go get github.com/spf13/cobra/cobra
Затем включите Cobra в свое приложение:
import "github.com/spf13/cobra"
Использование cobra
Инициализируйте приложение Cobra CLI с помощью cobra init --pkg-name
команда. Эта команда создаст для вас базовую структуру приложения.
Вы можете добавлять команды в свое приложение с помощью синтаксиса cobra add
.
Cobra предостерегает от использования snake_case/snake-case, потому что это может привести к ошибкам. Вместо этого используйте camelCase .
Ваш каталог будет выглядеть так:
Реализация
Давайте рассмотрим простой вариант использования Cobra. В приведенном ниже коде мы создадим простое приложение CLI для внесения дополнений.
Для этой реализации у нас будет три файла:
Файл | Каталог |
---|---|
1. main.go | приложение/демонстрация |
2. root.go | app/demo/cmd |
3. add.go | app/demo/cmd |
Для инициализации вашего Приложение CLI, напишите в своем терминале следующую команду:
cobra init --pkg-name demo
Это создаст ваш файлы main.go и root.go. Ваш главный. go — наша точка входа в наше приложение Cobra, и обычно это просто:
package mainimport ("{pathToYourApp}/cmd") func main () {cmd.Execute ()}
Значительный бит в файле root.go находится ниже (оставшуюся часть кода пока можно проигнорировать):
var rootCmd = & cobra.Command {Используйте: «demo», Short: «демонстрационное приложение для демонстрации кобры», Long: `демонстрационное приложение для демонстрации кобры путем добавления`} func Execute () {if err: = rootCmd.Execute () ; err! = nil {fmt.Println (err) os.Exit (1)}}
Теперь добавьте команду ‘добавить’, написав:
cobra add add
Это создаст файл для нашей команды «добавить». Код для файла:
package cmdimport ("fmt" "strconv" "github.com/spf13/cobra")//addCmd представляет команду добавления var addCmd = & cobra .Command {Используйте: "add", Short: "Добавить значения, переданные в функцию", Long: `Демонстрационное приложение для демонстрации возможностей кобры`, Run: func (cmd * cobra.Command, args [] string) {sum: = 0for _, args: = range args {num, err: = strconv.Atoi (args) if err! = nil {fmt.Println (err)} sum = sum + num} fmt.Println ("результат сложения", сумма )},} func init () {rootCmd.AddCommand (add)}
Вы можете выполнить программу, запустив:
перейти к установке
, а затем:
demo add 1 2 3
для которого вывод будет:
результат сложения - 6
Посетите страницу github для получения дополнительной информации.