Введение
Пакет Cobra — это известная библиотека Go для создания мощных современных приложений командной строки (CLI). Он находит применение во многих известных проектах Go, таких как Kubernetes, Hugo и GitHub CLI, доказывая свою эффективность и популярность 1. Это руководство проведет вас через основные шаги по началу работы с Cobra в Go, включая установку пакета, создание команд и подкоманд, добавление флагов к командам и организацию кода в приложении на основе Cobra.
Установка пакета:
Установите пакет Cobra, используя следующую команду:
go get -u github.com/spf13/cobra
Импортируйте пакет Cobra в свое приложение:
import "github.com/spf13/cobra"
Структура приложения Cobra. Типичное приложение на базе Cobra имеет структуру каталогов, подобную этой:
appName/cmd/add.go
your.go
commands.go
here.go
main.go
В вашем проекте каталог cmd
будет содержать все ваши команды и подкоманды, а файл main.go
будет служить точкой входа для вашего приложения 3.
Создание команд и подкоманд:
- Команды представляют действия, а флаги — модификаторы этих действий. Например, в
go run test.go --port=1123
«run» — это команда, а «port» — это флаг. - С Cobra создать новую команду очень просто. Начните с создания нового файла Go в каталоге
cmd
с именем вашей команды (например,add.go
). - Внутри этого файла определите свою команду как переменную типа
*cobra.Command
.
var addCmd = &cobra.Command{
Use: "add",
Short: "Add a new item",
Long: `Add a new item to the list.`,
Run: func(cmd *cobra.Command, args []string) {
//Il tuo codice qui
},
}
Добавьте свою команду в корневую команду приложения в файле main.go
:
func main() {
rootCmd.AddCommand(addCmd)
rootCmd.Execute()
}
Заключение
С Cobra создание надежных и организованных приложений CLI на Go становится относительно простой задачей. Следуя этому руководству, вы теперь должны иметь четкое представление о том, как начать работу с Cobra, создавать команды и подкоманды и организовывать свой код в приложении на основе Cobra. Постоянное изучение документации Cobra и практическое внедрение помогут вам стать более опытными в использовании этой мощной библиотеки.