diff options
| author | Shulhan <ms@kilabit.info> | 2025-08-13 18:47:49 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2025-08-20 02:43:53 +0700 |
| commit | f9c0f7d0e73c89b7473b7c0123427b934fcbff65 (patch) | |
| tree | a91c46b963889e67bc4a0e65ba2ad9829540e72b /worker.go | |
| parent | d34a7d3def91fb614fb657b81ff8265f19e078c8 (diff) | |
| download | lilin-f9c0f7d0e73c89b7473b7c0123427b934fcbff65.tar.xz | |
all: store the service logs into file
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) + } + } } |
