golang-app/pkg/config/Config.go

34 lines
644 B
Go

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 //nolint:gochecknoglobals // singleton globals
once sync.Once //nolint:gochecknoglobals // singleton globals
)
// GetConfig can panic
func GetConfig() Config {
once.Do(func() {
err := cleanenv.ReadEnv(&cfg)
if err != nil {
panic(err)
}
})
return cfg
}