🚀 Упрощаем работу с флагами в Go: flagforge
Разработка CLI-приложений на Go часто требует работы с флагами командной строки. Стандартный пакет flag удобен, но когда флагов много, их ручное определение становится утомительным. В этом помогает flagforge — инструмент для автоматизации создания флагов.
❓Что такое flagforge?
Flagforge — библиотека, разработанная в рамках проекта rqlite. Она генерирует флаги на основе структуры, упрощая их управление и делая код чище.
🛠 Как это работает
1️⃣Установка:
go get github.com/rqlite/flagforge
2️⃣Определение структуры:
type Config struct {
Host string `flag:"host" desc:"Server host"`
Port int `flag:"port" desc:"Server port"`
Debug bool `flag:"debug" desc:"Enable debug mode"`
}
3️⃣Генерация флагов:
func main() {
var cfg Config
flagforge.Parse(&cfg)
flag.Parse()
fmt.Printf("Config: %+v\n", cfg)
}
4️⃣Запуск:
go run main.go -host localhost -port 8080 -debug
5️⃣Вывод:
Config: {Host:localhost Port:8080 Debug:true}
🐸Библиотека Go разработчика