golang-app/config/Config.go

31 lines
534 B
Go
Raw Permalink Normal View History

package config
import (
"github.com/ilyakaznacheev/cleanenv"
"sync"
)
type Config struct {
API struct {
Token string `env:"TOKEN" env-layout:"string" env-required:"true"`
Owner int `env:"OWNER" env-layout:"int" env-required:"true"`
}
Paths struct {
Docs string `env:"DOCS_PATH" env-layout:"string" env-default:"docs" env-upd:"true"`
}
}
var cfg Config
var once sync.Once
// panic
func GetConfig() Config {
once.Do(func() {
err := cleanenv.ReadEnv(&cfg)
if err != nil {
panic(err.Error())
}
})
return cfg
}