yamlsettings/example/main.go

55 lines
1.0 KiB
Go
Raw Permalink Normal View History

2020-07-14 04:39:24 +00:00
package main
import (
"encoding/json"
"fmt"
"git.kirsle.net/go/yamlsettings"
)
type MyProj struct {
Databases struct {
PrimarySQL struct {
User string `yaml:"user"`
Passwd string `yaml:"passwd"`
Host string `yaml:"host"`
DB string `yaml:"db"`
Compress bool `yaml:"compress"`
Engine string `yaml:"engine"`
} `yaml:"primary_sql"`
Redis struct {
Host string `yaml:"redis_host"`
Port int `yaml:"redis_port"`
} `yaml:"redis"`
} `yaml:"databases"`
AppConfig struct {
Debug bool `yaml:"DEBUG"`
SecretKey string `yaml:"SECRET_KEY"`
} `yaml:"app_config"`
DebugSQL bool `yaml:"debug_sql"`
DebugProfiler bool `yaml:"debug_profiler"`
}
func (c MyProj) String() string {
output, _ := json.MarshalIndent(c, "", "\t")
return string(output)
}
func main() {
var config MyProj
err := yamlsettings.LoadFiles(
"defaults.yml",
"settings.yml2",
&config,
)
if err != nil {
panic(err)
}
// Print out the final settings to terminal as JSON.
fmt.Println(config)
}