package server import ( "runtime" "github.com/gammazero/workerpool" ) // UpdateConfigurationFiles updates all of the defined configuration files for // a server automatically to ensure that they always use the specified values. func (s *Server) UpdateConfigurationFiles() { pool := workerpool.New(runtime.NumCPU()) s.Log().Debug("acquiring process configuration files...") files := s.ProcessConfiguration().ConfigurationFiles s.Log().Debug("acquired process configuration files") for _, cf := range files { f := cf pool.Submit(func() { p, err := s.Filesystem().SafePath(f.FileName) if err != nil { s.Log().WithField("error", err).Error("failed to generate safe path for configuration file") return } if err := f.Parse(p, false); err != nil { s.Log().WithField("error", err).Error("failed to parse and update server configuration file") } s.Log().WithField("path", f.FileName).Debug("finished processing server configuration file") }) } pool.StopWait() }