mirror of
https://bitbucket.org/s_l_teichmann/mtsatellite
synced 2024-12-23 16:50:18 +01:00
Deserialize duration from config toml
This commit is contained in:
parent
1155930bc9
commit
c17bca9c94
@ -13,24 +13,34 @@ import (
|
|||||||
"bitbucket.org/s_l_teichmann/mtsatellite/common"
|
"bitbucket.org/s_l_teichmann/mtsatellite/common"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type duration struct {
|
||||||
|
time.Duration
|
||||||
|
}
|
||||||
|
|
||||||
type config struct {
|
type config struct {
|
||||||
WebPort int `toml:"web_port"`
|
WebPort int `toml:"web_port"`
|
||||||
WebHost string `toml:"web_host"`
|
WebHost string `toml:"web_host"`
|
||||||
WebDir string `toml:"web"`
|
WebDir string `toml:"web"`
|
||||||
MapDir string `toml:"map"`
|
MapDir string `toml:"map"`
|
||||||
RedisPort int `toml:"redis_port"`
|
RedisPort int `toml:"redis_port"`
|
||||||
RedisHost string `toml:"redis_host"`
|
RedisHost string `toml:"redis_host"`
|
||||||
ColorsFile string `toml:"update_hosts"`
|
ColorsFile string `toml:"update_hosts"`
|
||||||
BGColor string `toml:"background"`
|
BGColor string `toml:"background"`
|
||||||
Workers int `toml:"workers"`
|
Workers int `toml:"workers"`
|
||||||
Transparent bool `toml:"transparent"`
|
Transparent bool `toml:"transparent"`
|
||||||
TransparentDim float64 `toml:"transparent_dim"`
|
TransparentDim float64 `toml:"transparent_dim"`
|
||||||
UpdateHosts string `toml:"update_hosts"`
|
UpdateHosts string `toml:"update_hosts"`
|
||||||
Websockets bool `toml:"websockets"`
|
Websockets bool `toml:"websockets"`
|
||||||
PlayersFIFO string `toml:"players"`
|
PlayersFIFO string `toml:"players"`
|
||||||
YMin int `toml:"ymin"`
|
YMin int `toml:"ymin"`
|
||||||
YMax int `toml:"ymax"`
|
YMax int `toml:"ymax"`
|
||||||
ChangeDuration time.Duration `toml:"change_duration"`
|
ChangeDuration duration `toml:"change_duration"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *duration) UnmarshalText(text []byte) error {
|
||||||
|
var err error
|
||||||
|
d.Duration, err = time.ParseDuration(string(text))
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cfg *config) bindFlags() {
|
func (cfg *config) bindFlags() {
|
||||||
@ -71,7 +81,7 @@ func (cfg *config) bindFlags() {
|
|||||||
flag.StringVar(&cfg.PlayersFIFO, "ps", "", "Path to FIFO file to read active players from (shorthand).")
|
flag.StringVar(&cfg.PlayersFIFO, "ps", "", "Path to FIFO file to read active players from (shorthand).")
|
||||||
flag.IntVar(&cfg.YMin, "ymin", common.MinHeight, "Minimum y in blocks.")
|
flag.IntVar(&cfg.YMin, "ymin", common.MinHeight, "Minimum y in blocks.")
|
||||||
flag.IntVar(&cfg.YMax, "ymax", common.MaxHeight, "Maximum y in blocks.")
|
flag.IntVar(&cfg.YMax, "ymax", common.MaxHeight, "Maximum y in blocks.")
|
||||||
flag.DurationVar(&cfg.ChangeDuration,
|
flag.DurationVar(&cfg.ChangeDuration.Duration,
|
||||||
"change-duration", time.Second, "Duration to aggregate changes. (PG only)")
|
"change-duration", time.Second, "Duration to aggregate changes. (PG only)")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ func main() {
|
|||||||
go tu.doUpdates()
|
go tu.doUpdates()
|
||||||
|
|
||||||
if pgHost, ok := common.IsPostgreSQL(cfg.RedisHost); btu != nil && ok {
|
if pgHost, ok := common.IsPostgreSQL(cfg.RedisHost); btu != nil && ok {
|
||||||
go tu.listen(pgHost, cfg.ChangeDuration)
|
go tu.listen(pgHost, cfg.ChangeDuration.Duration)
|
||||||
} else {
|
} else {
|
||||||
router.Path("/update").Methods("POST").Handler(tu)
|
router.Path("/update").Methods("POST").Handler(tu)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user