Модуль позволяет сохранять и загружать файлы конфигураций четырех популярных форматов данных: XML, JSON, INI, YAML. Вам не нужно заботиться о конвертации данных в своем приложении, так как модуль понимает расширение файла и работает с тем форматом данных, который присутствует в файле.
go get github.com/egovorukhin/egoconf
- Инициализация
import "github.com/egovorukhin/egoconf"
...
type Config struct {
Host string `xml:"Host" json:"host" yaml:"host" ini:"host"`
Port int `xml:"Port" json:"port" yaml:"port" ini:"port"`
Username string `xml:"Username" json:"username" yaml:"username" ini:"username"`
Password string `xml:"Password" json:"password" yaml:"password" ini:"password"`
DBName string `xml:"DBName" json:"db_name" yaml:"dbName" ini:"dbName"`
}
...
Описываем структуру конфигурации, указываем в полях тэги для необходимого формата данных
- Сохранение
cfg := db.Config{
Host: "server",
Port: 5432,
Username: "user",
Password: "pass",
DBName: "name",
}
err = egoconf.Save("config.yml", cfg)
if err != nil {
log.Fatal(err)
}
- Загрузка
err = egoconf.Load("config.yml", &cfg)
if err != nil {
log.Fatal(err)
}
- config.xml
<Config>
<Host>server</Host>
<Port>5432</Port>
<Username>user</Username>
<Password>pass</Password>
<DBName>name</DBName>
</Config>
- config.json
{
"host": "server",
"port": 5432,
"username": "user",
"password": "pass",
"db_name": "name"
}
- config.ini
host = server
port = 5432
username = user
password = pass
dbName = name
- config.yml
host: cce-ucdev1-lt3.hq.bc
port: 5432
username: eduser
password: V4KRTksmHVPnZ8
dbName: education