aboutsummaryrefslogtreecommitdiff
path: root/worker.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2025-08-13 18:47:49 +0700
committerShulhan <ms@kilabit.info>2025-08-20 02:43:53 +0700
commitf9c0f7d0e73c89b7473b7c0123427b934fcbff65 (patch)
treea91c46b963889e67bc4a0e65ba2ad9829540e72b /worker.go
parentd34a7d3def91fb614fb657b81ff8265f19e078c8 (diff)
downloadlilin-f9c0f7d0e73c89b7473b7c0123427b934fcbff65.tar.xz
all: store the service logs into file
Diffstat (limited to 'worker.go')
-rw-r--r--worker.go27
1 files changed, 19 insertions, 8 deletions
diff --git a/worker.go b/worker.go
index 83f91da..27c78ea 100644
--- a/worker.go
+++ b/worker.go
@@ -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)
+ }
+ }
}