40 lines
854 B
Go
40 lines
854 B
Go
package config
|
|
|
|
import (
|
|
"path/filepath"
|
|
|
|
"github.com/cristalhq/aconfig"
|
|
"github.com/cristalhq/aconfig/aconfigyaml"
|
|
)
|
|
|
|
var Values struct {
|
|
ClientId string `yaml:"client_id"`
|
|
ClientSecret string `yaml:"client_secret"`
|
|
DeviceId string `yaml:"device_id"`
|
|
Port int `yaml:"port"`
|
|
}
|
|
|
|
func LoadConfig(configDir string) {
|
|
yamlDecoder := aconfigyaml.New()
|
|
|
|
loader := aconfig.LoaderFor(&Values, aconfig.Config{
|
|
AllowUnknownFields: true,
|
|
AllowUnknownEnvs: true,
|
|
AllowUnknownFlags: true,
|
|
SkipFlags: true,
|
|
DontGenerateTags: true,
|
|
MergeFiles: true,
|
|
EnvPrefix: "",
|
|
FlagPrefix: "",
|
|
Files: []string{
|
|
filepath.Join(configDir, "client.yml"),
|
|
},
|
|
FileDecoders: map[string]aconfig.FileDecoder{
|
|
".yml": yamlDecoder,
|
|
},
|
|
})
|
|
if err := loader.Load(); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|