forked from Lainports/opnsense-ports
66 lines
2.2 KiB
Go
66 lines
2.2 KiB
Go
--- helpers/service/simple.go.orig 2021-07-20 11:41:09 UTC
|
|
+++ helpers/service/simple.go
|
|
@@ -6,6 +6,8 @@ import (
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
+ "fmt"
|
|
+ "log/syslog"
|
|
"github.com/kardianos/service"
|
|
)
|
|
|
|
@@ -25,6 +27,39 @@ type SimpleService struct {
|
|
c *service.Config
|
|
}
|
|
|
|
+// Begin copy from /vendor/github.com/ayufan/golang-kardianos-service/service_unix.go
|
|
+type sysLogger struct {
|
|
+ *syslog.Writer
|
|
+ errs chan<- error
|
|
+}
|
|
+
|
|
+func (s sysLogger) send(err error) error {
|
|
+ if err != nil && s.errs != nil {
|
|
+ s.errs <- err
|
|
+ }
|
|
+ return err
|
|
+}
|
|
+
|
|
+func (s sysLogger) Error(v ...interface{}) error {
|
|
+ return s.send(s.Writer.Err(fmt.Sprint(v...)))
|
|
+}
|
|
+func (s sysLogger) Warning(v ...interface{}) error {
|
|
+ return s.send(s.Writer.Warning(fmt.Sprint(v...)))
|
|
+}
|
|
+func (s sysLogger) Info(v ...interface{}) error {
|
|
+ return s.send(s.Writer.Info(fmt.Sprint(v...)))
|
|
+}
|
|
+func (s sysLogger) Errorf(format string, a ...interface{}) error {
|
|
+ return s.send(s.Writer.Err(fmt.Sprintf(format, a...)))
|
|
+}
|
|
+func (s sysLogger) Warningf(format string, a ...interface{}) error {
|
|
+ return s.send(s.Writer.Warning(fmt.Sprintf(format, a...)))
|
|
+}
|
|
+func (s sysLogger) Infof(format string, a ...interface{}) error {
|
|
+ return s.send(s.Writer.Info(fmt.Sprintf(format, a...)))
|
|
+}
|
|
+// End copy
|
|
+
|
|
// Run should be called shortly after the program entry point.
|
|
// After Interface.Stop has finished running, Run will stop blocking.
|
|
// After Run stops blocking, the program must exit shortly after.
|
|
@@ -86,7 +121,13 @@ func (s *SimpleService) Logger(errs chan<- error) (ser
|
|
// SystemLogger opens and returns a system logger. If errs is non-nil errors
|
|
// will be sent on errs as well as returned from Logger's functions.
|
|
func (s *SimpleService) SystemLogger(errs chan<- error) (service.Logger, error) {
|
|
- return nil, ErrNotSupported
|
|
+ // Begin copy from vendor/github.com/ayufan/golang-kardianos-service/service_unix.go
|
|
+ w, err := syslog.New(syslog.LOG_INFO, s.c.Name)
|
|
+ if err != nil {
|
|
+ return nil, err
|
|
+ }
|
|
+ return sysLogger{w, errs}, nil
|
|
+ // End copy
|
|
}
|
|
|
|
// String displays the name of the service. The display name if present,
|