1
0
Fork 0
confection/demo/demo.go

46 lines
1.1 KiB
Go
Raw Normal View History

2015-01-18 10:50:03 +00:00
package main
import (
2015-01-19 11:22:45 +00:00
"encoding/json"
2015-01-18 10:50:03 +00:00
"flag"
"github.com/localhots/confection"
)
type (
Config struct {
AppName string `json:"app_name" attrs:"required" title:"Application Name"`
BuildNumber int `json:"build_number" attrs:"readonly" title:"Build Number"`
EnableSignIn bool `json:"enable_sign_in" title:"Enable Sign-In"`
DatabaseDriver string `json:"database_driver" title:"Database Driver" options:"mysql,postgresql,mssql"`
DatabaseConfig DatabaseConfig `json:"database_config"`
2015-01-18 11:31:36 +00:00
SensitiveData string `json:"sensitive_data" attrs:"ignored"`
2015-01-18 10:50:03 +00:00
}
DatabaseConfig struct {
Hostname string `json:"hostname"`
Port int `json:"port"`
Username string `json:"username"`
Password string `json:"password"`
Database string `json:"database" attrs:"required"`
}
)
2015-01-18 10:55:18 +00:00
func init() {
confection.SetupFlags()
2015-01-18 10:50:03 +00:00
flag.Parse()
2015-01-18 10:55:18 +00:00
}
2015-01-18 10:50:03 +00:00
2015-01-18 10:55:18 +00:00
func main() {
2015-01-18 10:50:03 +00:00
conf := Config{
DatabaseConfig: DatabaseConfig{},
}
2015-01-19 11:22:45 +00:00
manager := confection.New(conf, func(b []byte) interface{} {
var newConf Config
if err := json.Unmarshal(b, &newConf); err != nil {
panic(err)
}
return newConf
})
2015-01-18 10:50:03 +00:00
manager.StartServer()
}