48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
|
|
"github.com/localhots/secondly"
|
|
)
|
|
|
|
// testConf is our app's configuration
|
|
type testConf struct {
|
|
AppName string `json:"app_name"`
|
|
Version float32 `json:"version"`
|
|
Debug bool `json:"debug"`
|
|
Database testDatabaseConf `json:"database"`
|
|
}
|
|
|
|
type testDatabaseConf struct {
|
|
Adapter string `json:"adapter"`
|
|
Host string `json:"host"`
|
|
Port int `json:"port"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password"`
|
|
}
|
|
|
|
// conf is the variable that holds configuration
|
|
var conf = testConf{}
|
|
|
|
func main() {
|
|
// Setting up flags
|
|
secondly.SetupFlags()
|
|
flag.Parse()
|
|
|
|
// Delegating configuration management to Secondly
|
|
secondly.Manage(&conf)
|
|
// Handling file system events
|
|
secondly.HandleFSEvents()
|
|
// Starting a web server
|
|
secondly.StartServer("", 5500)
|
|
// Defining callbacks
|
|
secondly.OnChange("AppName", func(o, n interface{}) {
|
|
log.Printf("OMG! AppName changed from %q to %q", o, n)
|
|
})
|
|
|
|
// Other application startup logic
|
|
select {}
|
|
}
|