Общепризнанные
Cobra & Viper
Эти два пакета встречаются повсеместно. Cobra — разработка CLI для программы, Viper — работа с конфигурационными файлами.
Cobra
Install
Зависимость в проект:
go get -u github.com/spf13/cobra@latest
Затем в коде:
import "github.com/spf13/cobra"
Очень помогает управление через Cobra CLI:
go install github.com/spf13/cobra-cli@latest
Cobra CLI: Init Project
После того как мы создали проект:
cd $HOME/code
mkdir myapp
cd myapp
go mod init github.com/spf13/myapp
Заходим и инициализируем Cobra:
cobra-cli init [--author "Ike Murami my@email.com"] [--license GPLv3] [--viper]
Команда создаст main.go
файл и файлы для запуска в директории cmd
.
Cobra CLI: Add commands to a project
Добавляем команды:
cobra-cli add serve
cobra-cli add config
Добавить подкоманду команде config:
cobra-cli add create -p 'configCmd'
Теперь мы можем использовать эти команды:
go run main.go
go run main.go serve
go run main.go config
go run main.go config create
go run main.go helpe serve
Далее идем в файлы команд в cmd и кастомизируем их под себя, подробнее в The Cobra User Guide.
Viper
Others
Aurora — вывод в консоль красками https://github.com/logrusorgru/aurora
Atomic — обертка над базовыми типами: https://pkg.go.dev/go.uber.org/atomic
go get -u go.uber.org/atomic@v1
Last updated