flush config to disk every http

master
bel 2023-03-27 21:05:38 -06:00
parent 60ed9c1269
commit 60d391b7a4
1 changed files with 12 additions and 1 deletions

View File

@ -40,6 +40,7 @@ func (v01 *V01) _listen() {
defer mutex.Unlock()
}
v01.ServeHTTP(w, r)
v01.stashConfig() // TODO
}),
}
go func() {
@ -113,11 +114,20 @@ func (v01 *V01) servePatchConfig(w http.ResponseWriter, r *http.Request) {
return
}
v01.cfg = v01.cfg.WithPatch(v)
if err := v01.stashConfig(); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
}
func (v01 *V01) stashConfig() error {
if b, err := yaml.Marshal(v01.cfg); err == nil && FlagParseV01Config != "" {
if err := os.WriteFile(FlagParseV01Config, b, os.ModePerm); err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return err
}
} else if err != nil {
return err
}
return nil
}
func (v01 *V01) serveGlobalQueries(r *http.Request) {
@ -167,6 +177,7 @@ func (v01 *V01) serveGM(w http.ResponseWriter, r *http.Request) {
}
default:
http.NotFound(w, r)
return
}
}