55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
|
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)
|
||
|
}
|