diff options
Diffstat (limited to 'worker.go')
| -rw-r--r-- | worker.go | 27 |
1 files changed, 19 insertions, 8 deletions
@@ -4,6 +4,7 @@ package lilin import ( + "log" "os" "path/filepath" "strings" @@ -21,12 +22,12 @@ type worker struct { Reports Reports } -func newWorker(configDir string) (wrk *worker, err error) { +func newWorker(opts ServerOptions) (wrk *worker, err error) { wrk = &worker{ Services: make(map[string]*Service), } - err = wrk.loadServiceDir(configDir) + err = wrk.loadServiceDir(opts) if err != nil { return nil, err } @@ -35,7 +36,10 @@ func newWorker(configDir string) (wrk *worker, err error) { Services: make(map[string]*ServiceReport, len(wrk.Services)), } for name := range wrk.Services { - wrk.Reports.Services[name] = NewServiceReport(name) + wrk.Reports.Services[name], err = NewServiceReport(opts, name) + if err != nil { + return nil, err + } } return wrk, nil } @@ -45,11 +49,9 @@ type serviceConfigs struct { } // loadServiceDir Load all the service configurations. -func (wrk *worker) loadServiceDir(configDir string) (err error) { - var serviceDir = filepath.Join(configDir, `service.d`) - +func (wrk *worker) loadServiceDir(opts ServerOptions) (err error) { var listde []os.DirEntry - listde, err = os.ReadDir(serviceDir) + listde, err = os.ReadDir(opts.configServiceDir) if err != nil { return err } @@ -69,7 +71,7 @@ func (wrk *worker) loadServiceDir(configDir string) (err error) { continue } - var serviceCfg = filepath.Join(serviceDir, name) + var serviceCfg = filepath.Join(opts.configServiceDir, name) var rawcfg []byte rawcfg, err = os.ReadFile(serviceCfg) @@ -124,4 +126,13 @@ func (wrk *worker) stop() { for _, svc = range wrk.Services { svc.Stop() } + + var svcReport *ServiceReport + var err error + for _, svcReport = range wrk.Reports.Services { + err = svcReport.Close() + if err != nil { + log.Printf(`worker: stop: %s`, err) + } + } } |
